Difference between revisions of "Efika"
(→Serial console) |
(→Preparations) |
||
Line 38: | Line 38: | ||
The nfsroot is now prepared for a first and simple boot. Let us now set up the dhcp-/tftp-/nfs-server-voodoo. | The nfsroot is now prepared for a first and simple boot. Let us now set up the dhcp-/tftp-/nfs-server-voodoo. | ||
+ | sdfg | ||
==== DHCP-Server ==== | ==== DHCP-Server ==== |
Revision as of 16:02, 14 August 2007
The EFIKA is an embedded PowerPC board with a 400MHz 32-bit freescale MPC5200 (603e/e300), 128MB RAM, 100MBit/s NIC, 2xUSB 1.1, Soundchip, 2.5" harddisk connector, PCI and AGP (with riser-card) and serial out.
Pylon received a board for development work on it. I will leave it in the C4, so that we can attach additional hardware on it.
Contents
Ideas for development tasks
- mpd-server as in-replacement for the already existing one
- connection to the Fnordlicht (built at C4's U23 2005)
- using JACK for disco-lights
Booting
Harddisk
Currently I don't have any harddisk available, so this could not be tested. But it would be nice to create a complete stand-alone machine out of it.
USB
It's also possible to boot via USB. But it's only USB 1.1, so very slow.
NFS
I will use Gentoo/Linux on that machine. Yes, it might be slow, but it can be changed to your needs. Also it's possible to build on another PowerPC or with cross-dev.
Setup
- Server
- 10.10.1.1
- Client
- 10.10.1.2
Preparations
- Download a stage3-tar-ball and unpack it to e.g. /nfsroot.
- Change /nfsroot//etc/fstab, so that the root-filesystem will be mounted via NFS:
10.10.1.1:/nfsroot / nfs noatime 0 1
- Change /nfsroot/etc/securetty and add a line for logging in later via serial-line:
echo ttyPSC0 >> /nfsroot/etc/securetty
- Also add that serial-line to /nfsroot/etc/inittab:
echo "s0:12345:respawn:/sbin/agetty 115200 ttyPSC0 vt100" >> /nfsroot/etc/inittab
(you can use linux instead of vt100 for a coloured term, but then you should have a good serial communicotian program) - Add a password-hash for the root-password into /nfsroot/etc/shadow. I used htpasswd2 from apache for it. Call it with
htpasswd -nb root secret
. This will create the hash for the root-user with the password secret. Replace the*
afterroot:
in the shadow-file with that hash. - Give your system a hostname in /nfsroot/etc/hostname and add that hostname after the localhost-entry in /nfsroot/etc/hosts
- Unfortunately mounting another nfs-share for the portage-tree later will not work, as nfs-utils are not installed yet (I'm working on a special nfsroot-efika-stage4). Bind-mounting a portage-tree on a Gentoo-system will not work either (nfs just ignores that). So we have to download and unpack a current portage-snapshot into /nfsroot/usr/portage. Alternatively you can rsync your local portage-tree into /nfsroot:
rsync --archive --progress --exclude=packages/ --exclude=distfiles/ /usr/portage/ /nfsroot/usr/portage/
. - Finally unpack the precompiled modules into /nfsroot (
tar xvzf modules_efika.tgz -C /nfsroot/
.
The nfsroot is now prepared for a first and simple boot. Let us now set up the dhcp-/tftp-/nfs-server-voodoo. sdfg
DHCP-Server
I use dnsmasq for the dhcp-server, as it provides the possibilty to add tftp-dhcp-boot-options. Basically you only need to set two lines in your dnsmasq.conf:
dhcp-range=10.10.1.2,10.10.1.2,5m dhcp-host=00:0b:2f:e7:e7:20,10.10.1.2
- dhcp-range
-
<first-IP-address>,<last-IP-address>,<lease-time>
- dhcp-host
-
<MAC-address>,<IP-address>
(the MAC-address is printed on the sticker above the Ethernet-port)
Probably you might also want to set some more settings for the interface on the server, routing etc. After that start the daemon.
TFTP-Server
This time I use atftp as TFTP-Server. This server expects /tftproot as the path for tftp-files. But it's possible to change it in the config.
Now place the kernel into /tftproot and start the daemon.
NFS-Server
Add /nfsroot 10.10.1.2(rw,sync,no_root_squash)
to your /etc/exports and start the daemon. Make sure, that a firewall is not blocking nfs-requests. Also make sure, that /etc/hosts.{allow,deny} are set properly.
Serial console
Attach a null modem serial cable between the EFIKA and a PC with serial port. I use screen as serial terminal program: screen -m -c /dev/null /dev/ttyS0 115200 8n1
.
Booting
Now, let's boot! Switch on the EFIKA. You should see some lines with RAM-checking etc. After that you see a prompt:
ok #
On that prompt type in boot eth kernel_efika linux console=ttyPSC0 ip=dhcp panic=10 root=/dev/nfs nfsroot=10.10.1.1:/nfsroot
.
The EFIKA should download the kernel, boot up and will provide a login-prompt. Log in with your root-password you set previously. Welcome to your EFIKA!
Troubleshooting
- Check your serial and network cable
- Check your daemon-log-files
- Check your firewall if it allows DHCP, TFTP and NFS
- Check the permissions of /tftproot and /nfsroot