linux:arm:wm8750
Differences
This shows you the differences between two versions of the page.
| Previous revision | |||
| — | linux:arm:wm8750 [2023/11/24 21:55] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | # WM8750 | ||
| + | # Apricot R4 on NAND, for APC.io WM8750 | ||
| + | ## Overview | ||
| + | {{ : | ||
| + | For memory. Adapted from [[http:// | ||
| + | |||
| + | The plot is simple: How to install a _real_ GNU/Linux on the APC.io wm8750 PicoITX board. | ||
| + | __Royal Panda__ made a great job adapting Raspbian for the APC, he called this remix __Apricot__ | ||
| + | |||
| + | The last release is Apricot R5, but it still lacks Video support (among others things) and __Royal Panda__ didn't release any NAND installer. So this _" | ||
| + | |||
| + | Long story short: I needed to reinstall my APC board, but the kernel I had (and though was the one from the installer) lacks the UBI support, so I couldn' | ||
| + | |||
| + | ## Steps | ||
| + | ### What you'll need | ||
| + | |||
| + | * The board itself, the original APC.io board: __[[http:// | ||
| + | * A 1 Gio MicroSD card | ||
| + | * An Ethernet connection | ||
| + | * A Serial adapter | ||
| + | * Screen and Keyboard might help too... | ||
| + | |||
| + | ### Files | ||
| + | |||
| + | * The Installer Files with a scriptcmd file (it's easier this way, but don't worry, you'll play with uBoot via Serial) | ||
| + | * mtd-utils deb package (so you don't have to type the URL to download it) | ||
| + | * mod-kernel-RaspBian.tar.gz (the Kernel to be flashed on the NAND) | ||
| + | |||
| + | I've made a bundle with the useful files: {{gnulinux: | ||
| + | |||
| + | * Apricot R4 MMC (for its rootfs): [[http:// | ||
| + | |||
| + | ### MicroSD preparation | ||
| + | |||
| + | The easy way is to copy the Apricot R4 img on the uSD card, then add the the other files on the first partition. | ||
| + | dd if=./ | ||
| + | There should be one partition named __XCP-1.6.10 Base Pack__. Copy the files initrd.gz, uzImage.bin, | ||
| + | |||
| + | Create a folder where you extract the mod-kernel-RaspBian.tar.gz archive. Mine's named __modKern__. | ||
| + | |||
| + | ### First boot | ||
| + | Insert the MicroSD card, boot the board. | ||
| + | The debian-installer should start (on the screen, not in serial). Choose your language, you don't need the Network. Stop the installer as soon as you can, and drop to a Shell. From the menu, it's the __Execute a shell__ option. | ||
| + | |||
| + | Make sure your NAND layout is correct: | ||
| + | cat /proc/mtd | ||
| + | |||
| + | You should see this: | ||
| + | dev: size | ||
| + | mtd0: 00d00000 00010000 " | ||
| + | mtd1: 00280000 00010000 " | ||
| + | mtd2: 00050000 00010000 " | ||
| + | mtd3: 00010000 00010000 " | ||
| + | mtd4: 00010000 00010000 " | ||
| + | mtd5: 00010000 00010000 " | ||
| + | mtd6: 00a00000 00100000 " | ||
| + | mtd7: 7f600000 00100000 " | ||
| + | |||
| + | <note warning> | ||
| + | |||
| + | Mount the first partition of the uSD card somewhere, Flash the kernel on the NAND (mtd6) | ||
| + | mkdir /mnt | ||
| + | mount / | ||
| + | cd / | ||
| + | dd if=uzImage.bin of=/ | ||
| + | |||
| + | <note tip>You can try to erase the mtd partition before flashing the kernel, but I'm not sure it'd work, and if that's really necessary since __dd__ does a raw copy...</ | ||
| + | |||
| + | Shutdown the board. Unplug the uSD card. | ||
| + | |||
| + | ### Second Boot | ||
| + | Connect your serial adapter, open with these parameters: __115200 8n1__ without any flow control. | ||
| + | |||
| + | Restart the board.__Interrupt the boot process in uBoot by pressing Enter__. It should drop you to a uBoot shell. Enter theses lines | ||
| + | setenv nandargs " | ||
| + | setenv nandboot " | ||
| + | then | ||
| + | boot | ||
| + | When the Kernel starts booting, insert the uSD card so it can find the rootfs. When the system is ready, you should be able to connect using SSH. Login: __root__, password: __apricot__. Use the physical screen and keyboard to find out the IP address | ||
| + | |||
| + | From now it's pretty much the same as the original HowTo. Format the mtd7 partition (the __rootfs__) | ||
| + | mount / | ||
| + | dpkg -i / | ||
| + | umount /mnt | ||
| + | ubidetach -d 0 | ||
| + | ubiformat /dev/mtd7 | ||
| + | ubiattach -p /dev/mtd7 | ||
| + | ubimkvol /dev/ubi0 -m -N rootfs | ||
| + | mount -t ubifs ubi0:rootfs /mnt | ||
| + | |||
| + | Debootstrap Time ! It ccan be quite long, so... once you've seen it's start correctly, go do something else, have a coffe, take a (short) nap, ... | ||
| + | apt-get install -y debootstrap | ||
| + | debootstrap --no-check-gpg wheezy /chroot http:// | ||
| + | |||
| + | Once it's done, you can chroot in your new system ! | ||
| + | mount -t proc none /mnt/proc | ||
| + | mount -t sysfs none /mnt/sys | ||
| + | mount -o bind /dev /mnt/dev | ||
| + | chroot /mnt | ||
| + | |||
| + | You should now be using the rootfs on NAND, time to setup the Raspbian distro | ||
| + | mount / | ||
| + | cp -R / | ||
| + | depmod | ||
| + | |||
| + | Install uBoot tools to be able to change the uBoot parameters if/when you need | ||
| + | apt-get install u-boot-tools | ||
| + | echo "/ | ||
| + | echo "/ | ||
| + | fw_printenv ## Should print the uBoot env | ||
| + | |||
| + | Make the previous setenv changes permanent: | ||
| + | fw_setenv nandargs " | ||
| + | fw_setenv nandboot " | ||
| + | |||
| + | Setup you debian installation | ||
| + | passwd | ||
| + | echo "proc /proc proc defaults 0 0" >> /etc/fstab | ||
| + | echo " | ||
| + | echo "" | ||
| + | echo " | ||
| + | echo "iface eth0 inet dhcp" >> / | ||
| + | |||
| + | Install the SSH server | ||
| + | apt-get update | ||
| + | apt-get install openssh-server tmux | ||
| + | |||
| + | Edit the inittab to enable a serial session, just in case... | ||
| + | nano / | ||
| + | |||
| + | That should be it, you can safely poweroff the board, unplug the uSD card, then reboot. | ||
| + | |||
| + | ### That's all folks ! | ||
| + | |||
| + | Well, you now have a working Debian Wheezy system. I haven' | ||
| + | |||
| + | ## Troubleshooting | ||
| + | |||
| + | __The board doesn' | ||