Gestion multiboot et script recalbox-part.sh
-
Bonjour,
En remplacement de mon mediacenter RPi3 sous recalbox avec kodi, j'envisage une solution multiboot avec 3 os distinct : Recalbox 4.1, Kodi et Debian Jessie. J'utilise pour cela Odroid-Multiboot (lien github) de loboris et le résultat est bluffant grâce à cet outil.
Cependant, je rencontre une difficulté qui a nécessité
pas malvraiment beaucoup d'investigation (je découvre encore et toujours ) à savoir :- recalbox ne fonctionne qu'en stand-alone (kodi étant embarqué), il interprète donc la partition servant au share (/recalbox/share) comme étant la suivant de celle de boot/
Afin de permettre recalbox de fonctionner (enfin jusqu'à présent tout fonctionne...), j'ai modifié la fonction suivante (certainement optimisable) :
- fichier : /recalbox/script/recalbox-part.sh
determine_default_share_part() { XSHARE=$(lsblk -o name,label | grep SHARE | cut -d ' ' -f 1 | cut -d '-' -f 2) echo "/dev/$XSHARE" # BOOTPART=$(determine_boot_part) # XBOOT=$(echo "${BOOTPART}" | sed -e s+'^.*\([0-9]\)$'+'\1'+) # # # check that it is a number # if ! echo "${XBOOT}" | grep -qE '^[0-9]$' # then # return 1 # fi # # XSHARE=$(expr ${XBOOT} + 1) # echo "${BOOTPART}" | sed -e s+"${XBOOT}$"+"${XSHARE}"+ }
Ainsi, le point de montage /recalbox/share est réalisé en recherchant la partition s'appelant SHARE
Pour vous donner une idée du résultat, voici
sdb 29G +-sdb1 vfat /media/ben/sduserdata sduserdata 1G +-sdb2 ext4 /media/ben/system RECALBOX 384M +-sdb3 8M +-sdb4 +-sdb5 ext4 /media/ben/recalbox SHARE 2G +-sdb6 ext4 /media/ben/sdoelec sdoelec 2G +-sdb7 ext4 /media/ben/sdlinux1 sdlinux 23,5G
RECALBOX contient l'ensemble du contenu de l'image RECALBOX (boot/ +overlay par la suite) et SHARE le point de montage décrit ci-dessus
Et j'ai configuré mon /boot/recalbox-boot.conf pour accéder au NAS :
sharedevice=NETWORK sharenetwork_smb1=ROMS@IP_NAS:PATH_NAS:username=USER,password=PASS
- Pensez-vous que cette modification est pertinente, à ajuster ou à éviter ?
- Pensez-vous que le nom de cette partition est varialisable ? bref, que l'on précise dans recalbox-boot.conf le nom de la partition a utiliser pour le share ?
- Ai-je oublié autre choses ?
- Ai-je le droit de publier un lien externe vers Odroid.com (pour détailler l'ensemble) ? ou, plus tard, vers mon blog (pour les mêmes raisons) ?
Je suis preneur de toute remarque ou conseil également
-
@Pi-Druid yo ! Alors plusieurs remarques :
- c'est un script que je dois réécrire poyr une grosse nouveauté que j'ai dans les cartons
- le nom de la partition : ca ne marchera peut être pas parce que de mémoire, ce n'est pas tout le temps SHARE, mais ausdi share ... Et oui, case sensitive ... Me semble que c'est en minuscule sur l'image par noobs maid en majuscule par le .img ... Youpi ...
- dans le recalbox-boot.conf, pk pas oui. Mais le grand Dieu de recalbox aurait tendance à dire : faut que ce soit user friendly, et éviter l'edition manuelle
Mais oui, il y a des pistes d'amelioration. La première etant de faire comme chez odroid justement : regarder où est l'espace libre sur la sd quand on crée le share.
Historiquement je ne sais pas pk on n'utilise pas les label de partition. Et il y a 2 écoles opposées dans le monde linux sur ce sujet.
-
@Substring Hello !
Tout d'abord, merci beaucoup pour ton retour.
Effectivement, il semble y avoir pas mal à faire. En creusant un peu plus, la modification que je proposais n'est pas entièrement viable pour recalbox 4.1 (la version utilisée lors de la rédaction du post initial n'était pas conforme. Depuis, je constate des problèmes)
- La partition SHARE est recréée lorsqu'elle n'est pas trouvée visiblement (je perds donc son contenu à chaque démarrage).
- Je me rends compte également que la partition boot/ n'est pas correctement identifiée non plus.
A priori, pour pouvoir envisager recalbox en "vrai" multiboot, une des pistes serait de revoir en profondeur les scripts :
- /etc/init.d/S04mountboot
- /etc/init.d/S11share
Pour le coup...
- /recalbox/scripts/recalbox-part.sh ne serait plus utile
- idem pour /recalbox/scripts/recalbox-mount.sh
- à chaque mise à jour c'est le risque de perdre ses données
Je vais étudier cela plus en détail dans les prochains jours, mais je suis preneur de toute autre option (ou conseil), mon objectif reste avant tout d'avoir un vrai multiboot linux / kodi / retrogaming sur Odroid C2 avec la possibilité de procéder indépendamment à la monté de version de chacun.
-
@pi-druid il y a une autre grosse difficulté supplémentaire dans les cartons : squashfs. J'ai bien avancé sur le sujet, et une des difficultés restantes concerne l'identification du share, parce quedans ce cas / est monté sur /dev/loop0 hahaha
La suggestion que je peux te faire : identifier l'espace libre de la sd ou clé usb (attention : / peut etre sur /dev/sdN, /dev/loopN, /dev/mmcblp[01]) et ecrire dans le recalbox-boot.conf le device créé pour le share.
Encore une difficulté dans un myltiboot : recalbox mange tout l'espace restant ...
De quoi faire ... Et tu marches sur des oeufs
-
Ah au fait, je viens de lire irc : pas (encore) de
lsblk
mais il y ablkid
qu'on utilise déjà. Je ne sais pas s'il y a une différence fondamentale entre les 2