Editing Linuxstamp II 9260
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 17: | Line 17: | ||
* Serial debug port 5-pin header | * Serial debug port 5-pin header | ||
* JTAG port | * JTAG port | ||
− | |||
− | |||
− | |||
== Emdebian == | == Emdebian == | ||
− | The current Linux distribution is [http://www.emdebian.org/ Emdebian]. It is located in the NAND flash and uses UBI & UBIFS | + | The current Linux distribution is [http://www.emdebian.org/ Emdebian]. It is located in the NAND flash and uses UBI & UBIFS. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Cross Compiler == | == Cross Compiler == | ||
− | you can use [http://ymorin.is-a-geek.org/projects/crosstool | + | you can use [http://ymorin.is-a-geek.org/projects/crosstool crosstoll-ng] to generate a cross compiler. The documentation on the website is very good. |
− | |||
− | |||
== U-boot == | == U-boot == | ||
First we need [ftp://ftp.denx.de/pub/u-boot/u-boot-2010.03.tar.bz2 u-boot]. If you have not yet built a cross compilier now would be a good time to do so (See the cross compilier section above). Now you can do a test for the Atmel at91sam9g20 EL board using NAND. | First we need [ftp://ftp.denx.de/pub/u-boot/u-boot-2010.03.tar.bz2 u-boot]. If you have not yet built a cross compilier now would be a good time to do so (See the cross compilier section above). Now you can do a test for the Atmel at91sam9g20 EL board using NAND. | ||
− | + | * $ '''make at91sam9g20ek_nandflash_config''' | |
− | + | * $ '''make CROSS_COMPILE=your_cross_compiler''' | |
This should give you a "u-boot.bin" file. We will have to write a board specific configuration file for the Linuxstamp. We should be able to base it off the the Atmel DK board. If you look at "/u-boot-1.1.6/include/configs/at91rm9200dk.h" you can see the configuration for the DK board. | This should give you a "u-boot.bin" file. We will have to write a board specific configuration file for the Linuxstamp. We should be able to base it off the the Atmel DK board. If you look at "/u-boot-1.1.6/include/configs/at91rm9200dk.h" you can see the configuration for the DK board. | ||
<br> | <br> | ||
Other u-boot commands: | Other u-boot commands: | ||
− | + | * > '''printenv''', prints the enviroment variables | |
− | + | * > '''saveenv''', saves the enviroment variables | |
− | + | * > '''setenv bootcmd 'tftpboot 20800000 uImage; bootm 20800000'''' Sets the boot command to load a image over tftp and boot it | |
− | + | * > '''setenv bootargs mem=32M nfsroot=192.168.0.3:/nfs_root ip=192.168.0.51 console=ttyS0,115200n8 rootdelay=1''' | |
This sets the command line to be passed to the kernel. As you can see it sets the nfsrot, ip address and console | This sets the command line to be passed to the kernel. As you can see it sets the nfsrot, ip address and console | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== License == | == License == | ||
Line 158: | Line 55: | ||
When you plug the Linuxstamp into your host (Linux) machine a device should appear '''/dev/ttyUSB0''' (the suffix number will increment as you add more devices). '''/dev/ttyUSB0''' will behave as any other serial port now. '''Minicom''' is the standard program to access the serial port in Linux. The first time you run minicom you will have to be root in order to do the setup, after that you can change the permissions on /dev/ttyUSB0 so any user can run minicom. To enter configuration mode in minicom type '''CTRL-A o''', now scroll down to '''Serial port setup'''. Use the letters to navigate. You will want the device to be '''/dev/ttyUSB0''' and '''Bps/Par/Bits''' to read '''115200 8N1'''. Both hardware and software flow control should be OFF. Connection to the board is important for loading Atmel's tiny program and u-boot, but once the board is working it might not be as important. | When you plug the Linuxstamp into your host (Linux) machine a device should appear '''/dev/ttyUSB0''' (the suffix number will increment as you add more devices). '''/dev/ttyUSB0''' will behave as any other serial port now. '''Minicom''' is the standard program to access the serial port in Linux. The first time you run minicom you will have to be root in order to do the setup, after that you can change the permissions on /dev/ttyUSB0 so any user can run minicom. To enter configuration mode in minicom type '''CTRL-A o''', now scroll down to '''Serial port setup'''. Use the letters to navigate. You will want the device to be '''/dev/ttyUSB0''' and '''Bps/Par/Bits''' to read '''115200 8N1'''. Both hardware and software flow control should be OFF. Connection to the board is important for loading Atmel's tiny program and u-boot, but once the board is working it might not be as important. | ||
− | Another alternative is to use HyperTerm on Windows, which works fine with the Hardware boot loader. If you are updating the | + | Another alternative is to use HyperTerm on Windows, which works fine with the Hardware boot loader. If you are updating the Darren Bootloader, note that the loader only has a short delay after you initiate the "receive" (on the loader) after which it send out the "ready to receive" signal. As a result, you'll need to be rather quick to initiate the Xmodem "send" (on HyperTerm). If you are seeing time outs on HyperTerm when you try and send the loader.bin file, you are probably hitting this problem ... you need to have initiated the send before you see the "C" on the screen from the bootloader. |
== nfs & tftp == | == nfs & tftp == | ||
− | Nfs (network file system) and tftp (trivial file transfer protocol) are two servers you will want running on your host machine. Nfs is useful for hosting the root file system of the Linuxstamp. Tftp is useful for u-boot to retrieve the kernel from. There are many other websites on nfs and tftp, but I will try and go over a simple setup. I would suggest being behind a firewall before trying either of these setups as neither is secure. I wrote this using a Fedora 7 system. | + | Nfs (network file system) and tftp (trivial file transfer protocol) are two servers you will want running on your host machine. Nfs is useful for hosting the root file system of the Linuxstamp. Tftp is useful for u-boot to retrieve the kernel from. There are many other websites on nfs and tftp, but I will try and go over a simple setup. I would suggest being behind a firewall before trying either of these setups as neither is secure. I wrote this using a Fedora 7 system. First make sure you have nfs installed. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | First make sure you have nfs installed. | ||
$ '''yum install nfs-utils nfs-utils-lib portmap system-config-nfs''' | $ '''yum install nfs-utils nfs-utils-lib portmap system-config-nfs''' | ||
Line 182: | Line 68: | ||
Now to make sure the service is enabled run (this won't work on Ubuntu): | Now to make sure the service is enabled run (this won't work on Ubuntu): | ||
$ '''serviceconf''' and make sure '''nfs''' and '''nfs lock''' are checked | $ '''serviceconf''' and make sure '''nfs''' and '''nfs lock''' are checked | ||
− | Now edit '''/etc/exports''' you should add a line like this '''/ | + | Now edit '''/etc/exports''' you should add a line like this '''/path_to_nfs_root/ *(rw,no_root_squash,insecure)'''. Now restart nfs. |
$ '''sudo /etc/init.d/nfs restart''' | $ '''sudo /etc/init.d/nfs restart''' | ||
You can test that it is set up correctly by typing the following on the local system (i.e. right on the NFS server) | You can test that it is set up correctly by typing the following on the local system (i.e. right on the NFS server) | ||
Line 188: | Line 74: | ||
You can test this from a remote system with | You can test this from a remote system with | ||
− | $ '''mount -t nfs | + | $ '''mount -t nfs server_name:/path_to_nfs_root /path_to_test_mount''' |
Now on to tftp. Make sure it is installed. | Now on to tftp. Make sure it is installed. | ||
$ '''yum install tftp-server''' | $ '''yum install tftp-server''' | ||
Line 201: | Line 87: | ||
And boot them | And boot them | ||
> '''bootm 20800000''' | > '''bootm 20800000''' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== NAND Flash == | == NAND Flash == | ||
− | One good solution for the NAND flash is to use the new [http://www.linux-mtd.infradead.org/faq/ubi.html ubi] and [http://www.linux-mtd.infradead.org/faq/ubifs.html ubifs] components. These both need to be enabled in the kernel, and then they can be used from the emdebian system. You can always check what mtd devices are avaliable in /proc/mtd. First we can format the mtd device | + | One good solution for the NAND flash is to use the new [http://www.linux-mtd.infradead.org/faq/ubi.html ubi] and [http://www.linux-mtd.infradead.org/faq/ubifs.html ubifs] components. These both need to be enabled in the kernel, and then they can be used from the emdebian system. You can always check what mtd devices are avaliable in /proc/mtd. First we can format the mtd device: |
$ ubiformat /dev/mtd1 | $ ubiformat /dev/mtd1 | ||
Now we can "attach" it. This is telling the kernel to use the ubi subsystem for that partition. The -m 1 says use /dev/mtd1. | Now we can "attach" it. This is telling the kernel to use the ubi subsystem for that partition. The -m 1 says use /dev/mtd1. | ||
Line 256: | Line 98: | ||
$ mount -t ubifs ubi0_0 /mnt/tmp/ | $ mount -t ubifs ubi0_0 /mnt/tmp/ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Links == | == Links == | ||
Line 283: | Line 103: | ||
*[http://cadsoft.de/ Cadsoft.de]: Free (as in beer) tools for schematic and PCB design | *[http://cadsoft.de/ Cadsoft.de]: Free (as in beer) tools for schematic and PCB design | ||
*[http://openhardware.wordpress.com/ openhardware.wordpress.com]: Here is my openhardware blog | *[http://openhardware.wordpress.com/ openhardware.wordpress.com]: Here is my openhardware blog | ||
− | *[[Linuxstamp]] for the | + | *[[Linuxstamp Mboard 1| Mborad 1]] for the Linuxstamp |
*[http://wiki.emqbit.com/free-ecb-at91 ECB AT91] This is another open source project similar to the Linuxstamp. They have some [http://wiki.emqbit.com/wiki very good documentation]. | *[http://wiki.emqbit.com/free-ecb-at91 ECB AT91] This is another open source project similar to the Linuxstamp. They have some [http://wiki.emqbit.com/wiki very good documentation]. | ||
*[http://www.budgetdedicated.com/ Budgetdedicated] Graciously hosts our ftp [http://linuxstamp.budgetdedicated.com/index.php?dir=lnst2/ site] | *[http://www.budgetdedicated.com/ Budgetdedicated] Graciously hosts our ftp [http://linuxstamp.budgetdedicated.com/index.php?dir=lnst2/ site] |