Difference between revisions of "Efika"

From C4 Wiki
Jump to: navigation, search
(NFS: Finalizing)
m (Reverted edits by Oxudocopaj (talk) to last revision by Tobias)
 
(9 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
The [http://www.efika.info 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.
 
The [http://www.efika.info 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.
  
[[User:Pylon|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.
+
[[User:Pylon|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.
  
 
== Ideas for development tasks ==
 
== Ideas for development tasks ==
  
# mpd-server as in-replacement for the already existing one
+
# [http://www.musicpd.org mpd]-server as in-replacement for the already existing one
# connection to the [[Fnordlicht]]
+
# connection to the [http://www.fnordlicht.de Fnordlicht] (built at C4's [[U23 2005]])
# using jack for disco-lights
+
# using [http://jackaudio.org JACK] for disco-lights
  
 
== Booting ==
 
== Booting ==
Line 40: Line 40:
  
 
==== DHCP-Server ====
 
==== 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 three lines in your <tt>dnsmasq.conf</tt>:
+
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 <tt>dnsmasq.conf</tt>:
 
<pre>
 
<pre>
 
dhcp-range=10.10.1.2,10.10.1.2,5m
 
dhcp-range=10.10.1.2,10.10.1.2,5m
 
dhcp-host=00:0b:2f:e7:e7:20,10.10.1.2
 
dhcp-host=00:0b:2f:e7:e7:20,10.10.1.2
dhcp-boot=/tftproot/di_efika,10.10.1.2
 
 
</pre>
 
</pre>
  
 
;dhcp-range: <code><first-IP-address>,<last-IP-address>,<lease-time></code>
 
;dhcp-range: <code><first-IP-address>,<last-IP-address>,<lease-time></code>
 
;dhcp-host: <code><MAC-address>,<IP-address></code> (the MAC-address is printed on the sticker above the Ethernet-port)
 
;dhcp-host: <code><MAC-address>,<IP-address></code> (the MAC-address is printed on the sticker above the Ethernet-port)
;dhcp-boot: <code><path-to-kernel>,<IP-address></code>
 
  
 
Probably you might also want to set some more settings for the interface on the server, routing etc.  After that start the daemon.
 
Probably you might also want to set some more settings for the interface on the server, routing etc.  After that start the daemon.
Line 60: Line 58:
 
==== NFS-Server ====
 
==== NFS-Server ====
 
Add <code>/nfsroot        10.10.1.2(rw,sync,no_root_squash)</code> to your <tt>/etc/exports</tt> and start the daemon.  Make sure, that a firewall is not blocking nfs-requests.  Also make sure, that <tt>/etc/hosts.{allow,deny}</tt> are set properly.
 
Add <code>/nfsroot        10.10.1.2(rw,sync,no_root_squash)</code> to your <tt>/etc/exports</tt> and start the daemon.  Make sure, that a firewall is not blocking nfs-requests.  Also make sure, that <tt>/etc/hosts.{allow,deny}</tt> are set properly.
 
==== ARP ====
 
Add a static ARP-entry to your apr-table with <code>arp -s 10.10.1.2 00:0b:2f:e7:e7</code> (replace the MAC-address with the one of your EFIKA).
 
  
 
==== Serial console ====
 
==== Serial console ====
Attach a serial cable between the EFIKA and a PC with serial port.  I use <tt>screen</tt> as serial terminal program: <code>screen -m -c /dev/null /dev/ttyS0 115200 8n1</code>.
+
Attach a null modem serial cable between the EFIKA and a PC with serial port.  I use <tt>screen</tt> as serial terminal program: <code>screen -m -c /dev/null /dev/ttyS0 115200 8n1</code>.
  
 
==== Booting ====
 
==== Booting ====
Line 76: Line 71:
  
 
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!
 
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 <tt>/tftproot</tt> and <tt>/nfsroot</tt>

Latest revision as of 17:37, 24 November 2010

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.

Ideas for development tasks

  1. mpd-server as in-replacement for the already existing one
  2. connection to the Fnordlicht (built at C4's U23 2005)
  3. 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

  1. Download a stage3-tar-ball and unpack it to e.g. /nfsroot.
  2. Change /nfsroot//etc/fstab, so that the root-filesystem will be mounted via NFS: 10.10.1.1:/nfsroot / nfs noatime 0 1
  3. Change /nfsroot/etc/securetty and add a line for logging in later via serial-line: echo ttyPSC0 >> /nfsroot/etc/securetty
  4. 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)
  5. 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 * after root: in the shadow-file with that hash.
  6. Give your system a hostname in /nfsroot/etc/hostname and add that hostname after the localhost-entry in /nfsroot/etc/hosts
  7. 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/.
  8. 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.

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