Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
nas:dockstar:boot:boot_usb [11 /06/2012 21:09] psolyca créée |
nas:dockstar:boot:boot_usb [17 /11/2016 15:03] (Version actuelle) psolyca ↷ Liens modifiés en raison d'un déplacement. |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
==== Boot OpenWrt ==== | ==== Boot OpenWrt ==== | ||
- | Sur le [[http://wiki.openwrt.org/toh/seagate/dockstar|wiki d'OpenWrt]], il est décrit la base pour pouvoir démarrer le DockStar sur cette mini distribution. | + | Sur le [[http://wiki.openwrt.org/toh/seagate/dockstar|wiki d'OpenWrt]], il est décrit la base pour pouvoir démarrer le Dockstar sur cette mini distribution. |
- | Mais ça ne me convenait pas. | + | |
- | En effet, il fallait passer par un "2nd stage bootloader" spécifique à OpenWrt et donc ralentir le démarrage alors que U-Boot sur DockStar permet directement de démarrer sur d'autres supports (SD, USB) si ceux-ci ont été installés. | + | Mais il faut passer par un "2nd stage bootloader" spécifique à OpenWrt et donc ralentir le démarrage alors que U-Boot peut supporter directement le démarrage sur d'autres supports (SD, USB) si ceux-ci ont été installés. |
- | Par défaut, U-boot ne le permet pas mais Jeff Dozan a [[http://jeff.doozan.com/debian/uboot/|intégré cette capacité à ce bootloader]]. | + | Par défaut, U-boot ne le permet pas mais Jeff Doozan a [[http://jeff.doozan.com/debian/uboot/|intégré cette capacité]]. |
- | Sur ces pages, il y est aussi décrit comment compiler soit même ce U-Boot. | + | |
==== U-Boot ==== | ==== U-Boot ==== | ||
- | J'ai donc installé ce nouveau U-Boot sur le DockStar. | + | Installation d'un autre U-Boot sur le Dockstar avec modifications sur l'environnement de démarrage puisque par défaut, Jeff Dozan utilise un système basé sur du Debian, la configuration reflète son choix.\\ |
- | Par contre, j'ai fait des modifications sur l'environnement de démarrage puisque par défaut, Jeff Dozan utilise un système basé sur du Debian, la configuration reflète son choix. | + | Nettoyage de tout la configuration pour obtenir ce qui suit : |
- | J'ai nettoyé tout la configuration pour obtenir ce qui suit : | + | |
<code> | <code> | ||
- | Printenv à venir | + | printenv |
+ | ethact=egiga0 | ||
+ | baudrate=115200 | ||
+ | mainlineLinux=yes | ||
+ | console=ttyS0,115200 | ||
+ | led_init=green blinking | ||
+ | led_exit=green off | ||
+ | led_error=orange blinking | ||
+ | mtdids=nand0=orion_nand | ||
+ | partition=nand0,2 | ||
+ | usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done | ||
+ | usb_scan_list=1 2 3 4 | ||
+ | usb_scan_1=usb=0:1 dev=sda1 | ||
+ | usb_scan_2=usb=1:1 dev=sdb1 | ||
+ | usb_scan_3=usb=2:1 dev=sdc1 | ||
+ | usb_scan_4=usb=3:1 dev=sdd1 | ||
+ | usb_init=run usb_scan | ||
+ | usb_rootdelay=10 | ||
+ | usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot | ||
+ | usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi | ||
+ | fileaddr=800000 | ||
+ | mtdparts=mtdparts=orion_nand:1M(u-boot),4M@1M(uImage),10M@5M(rootfs),-(rootfs_data) | ||
+ | ethaddr=XX:XX:XX:XX:XX:XX | ||
+ | arcNumber=2998 | ||
+ | bootcmd=usb start; run usb_bootcmd; usb stop; run openwrt_bootcmd; reset | ||
+ | filesize=1 | ||
+ | usb_device=0:1 | ||
+ | usb_root=/dev/sda1 | ||
+ | openwrt_root=/dev/mtdblock2 ro | ||
+ | openwrt_rootfstype=jffs2 | ||
+ | openwrt_set_bootargs=setenv bootargs console=$console root=$openwrt_root rootfstype=$openwrt_rootfstype $mtdparts $openwrt_custom_params | ||
+ | openwrt_boot=nand read.e 0x6400000 0x100000 0x400000; bootm 0x6400000 | ||
+ | openwrt_bootcmd=run openwrt_set_bootargs; run openwrt_boot | ||
+ | usb_rootfstype=ext2 | ||
+ | usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $usb_custom_params | ||
+ | ipaddr=192.168.1.2 | ||
+ | serverip=192.168.1.11 | ||
+ | bootdelay=10 | ||
+ | stdin=serial | ||
+ | stdout=serial | ||
+ | stderr=serial | ||
+ | |||
+ | Environment size: 1872/131068 bytes | ||
+ | Marvell>> | ||
</code> | </code> | ||
- | Ceci permet de démarrer dur une clef USB partitionnée comme suit : | + | Ceci permet de démarrer sur une clef USB avec les partitions comme suit : |
- | ^ Partition | mtd0 | sda1 | sda2 | | + | ^Support | NAND | USB | USB | |
- | ^ Taille | 1Mo | - | 256Mo | | + | ^Partition | mtd0 | sda1 | sda2 | |
- | ^ Contenu | u-boot | uImage+rootfs+data | swap | | + | ^Taille | 1Mo | - | 256Mo | |
- | ^ Système | ? | ext2 | swap | | + | ^Contenu | u-boot | uImage+rootfs+data | swap | |
- | J'ai longtemps hésité à avoir une partition spécifique pour uImage mais au final ce serait restrictif. J'ai donc opté pour tout regroupé sur une même partition. | + | ^Système | - | ext2 | swap | |
- | Par la suite, j'essaierais de démarrer sur une carte SD qui me permettra de gagner un port USB supplémentaire mais il faut réaliser la partie électronique. | + | Il est possible de démarrer sur une carte SD et gagner un port USB supplémentaire mais il faut réaliser la partie électronique, [[nas:dockstar:amelioration:ajout_sd-card|ajouter un lecteur de carte SD]] et [[nas:dockstar:boot:boot_sd-card|ajouter le support MMC]] à U-Boot. |