Title: Adding Packages to Initrd or Custom Initrd Post by: professor_jonny on August 15, 2013, 10:48:11 AM Hi there I have an initial ram disk and im wondering how to add to it.
I have worked out my releace of busybox is compiled without some of the required items needed in my script such as the command stat and the image is missing some things i want to add in like xboxdrv and some dependancys like libusb. I'm using the inital ram disk from a dsl image for a utilities disk for the xbox but the problem is I can't add packages as I dont know how to add them in as i can not compile them as it is missing a compiler and its dependancys and the typical sudo apt get install way of things. How would I go about installing extra things into my image I'm guessing i need to make a custom image but how do i go about this as there is no command mkinitrd also in dsl? My task is to eventually make a script to init the xbox from a custom linuxrc then read a second stage user modifiable script off a fatx partition which I have read write access to so one could modify things without tools to open up the image. The script is designed flash multiple flash bios files to the xbox selectable via emulated keyboard presses using the xbox gampad/joystick driver it will dump bioses from the xbox check file sizes compair and flash to ensure no bad flashes and provide a log file for the user incase something goes wrong. Eventually I will extend it futher to format partitions and write the operating system files on. The game controller also can be customised as it will read the config file off the fatx partition and you basically have the option to do any thing you want or extend it with out opening up the initrd as the flash script and game controller config file is loaded from outside the initrd. Here is what I have in my script's so far but it fails because of the missing things So far it sets up the xbox special hardware and i2c drivers then mounts the fatx file system and loads the second stage script off the fatx partition. I have tested the flash scripts sequences and logic and all work except for the game controller/keyboard driver and file size check's using the stat command. If i could add in those two things I'd be happy. linuxrc script in root of package Code: #!/bin/bash # linuxrc startup script inital script to setup flash enviroment and # handle control over to second stage #----------------------------------------------------------------------------- # (c) Copyright 2002 Edgar Hucek <hostmaster@ed-soft.at> # All Rights Reserved. # # http://xbox-linux.sourceforge.net # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version # 2 of the License, or (at your option) any later version. # # Neither Edgar Hucek nor xbox-linux admit liability nor provide # warranty for any of this software. This material is provided # "AS-IS" and at no charge. # # (c) Copyright 2002 Edgar Hucek <hostmaster@ed-soft.at> #----------------------------------------------------------------------------- # Modified by professor_jonny # Dont email me I'm too busy :-) # # #----------------------------------------------------------------------------- # Output boot sequence to console /bin/dmesg -n 1 # done # Setup path PATH=/bin:/sbin export PATH # done # Setup user read write access umask 022 #done # Mount kernel and terminal mount -t proc none /proc mount -t devpts none /dev/pts echo 0x100 > /proc/sys/kernel/real-root-dev #done # Make folders for mountpoints mkdir -p /cdrom /ram /proc /mnt/xbox # done # Setup constants for paths to make easy changes in future XBOXMOUNTPATH=/mnt/xbox MASTERHDDEPARTITION=/dev/discs/disc0/part50 FLASHAPPPATH=/mnt/xbox/apps/flash # done # Loading i2c modules for the XBox DVD-Rom for control of dvd from yellow cable insmod i2c-core insmod i2c-xbox insmod i2c-proc insmod i2c-dev # done # load in fat and fatx kernel modules insmod fat insmod fatx # done # Mount $MASTERHDDEPARTITION at $XBOXMOUNTPATH mount -t fatx -o rw $MASTERHDDEPARTITION $XBOXMOUNTPATH # done # Now fatxfile system is loaded and mounted setup xboxdrv xbox game controller driver and # load config from from $XBOXMOUNTPATH/$FLASHAPPPATH sudo xboxdrv --silent --config $FLASHAPPPATH/game.cfg # done # Force loading 2nd stage flash script from $XBOXMOUNTPATH/$FLASHAPPPATH/ # ignoring execute bit as we cant set it on a fatx partition /bin/bash $FLASHAPPPATH/Flash.sh # done # end Flash script stored of fatx Code: #!/bin/bash # second stage flash script to do the actual flashing and log file # flash.sh setup file stored on xbox @ $XBOXMOUNTPATH #----------------------------------------------------- # # # # (c) Copyright 2013 Professor_jonny # All Rights Reserved. # # http://www.xbmc4xbox.org.uk # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation. # # This material is provided AS-IS" and at no charge if it # makes your toaster catch fire dont blame me. # # (c) Copyright 2013 #----------------------------------------------------- # # # Setup constants for paths to make easy changes in future RELEASETITLE="MECHASSAULT RAINCOAT FLASH DISK MODDED BY PROFESSOR_JONNY" XBOXMOUNTPATH=/mnt/xbox FLASHAPPPATH=/mnt/xbox/apps/flash # Setup constants for logic to make code more readable FLASHED=0 DONE=1 ZEROCOND=0 DATE=`date` LOGFILE=flash.log ORGBIOSFILE=original_bios.bin FLASHFILE0=256.bin FLASHFILE1=512.bin FLASHFILE2=1024.bin FLASHFILESIZE0=262144 FLASHFILESIZE0=524288 FLASHFILESIZE0=1048576 FILESIZE0=1 FILESIZE1=1 FILESIZE2=1 # Check file sizes of flash files for peace of mind and ouput to screen. # This could be extended to halt the xbox but ill give the user the ability # to decide this. echo -e "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" echo echo " $RELEASETITLE" echo " =======================================================" echo " flash file size check procedure." echo cd $FLASHAPPPATH X=1 while [[ $x -le 3 ]] do FILENAME=$FLASHAPPPATH/$FLASHFILE$X FILESIZE=$(stat -c %s $FILENAME) echo "Size of $FILENAME = $FILESIZE bytes." if [[$x -eq 0]] then [[FILESIZE = $FILESIZE0]] fi if [[$x -eq 1]] then [[[FILESIZE = $FILESIZE1]] fi if [[$x -eq 2]] then [[FILESIZE = $FILESIZE2]] fi x=$(($x+1)) done #done echo "-[ $RELEASETITLE started: $DATE ]-----" >>$LOGFILE echo " " >>$LOGFILE if $FILESIZE0=$FLASHFILESIZE0 then echo " $FLASHFILE0 is correct" >>$LOGFILE else echo " $FLASHFILE0 is incorrect" >>$LOGFILE fi if $FILESIZE1=$FLASHFILESIZE1 then echo " $FLASHFILE1 is correct" >>$LOGFILE else echo " $FLASHFILE1 is incorrect" >>$LOGFILE fi if $FILESIZE2=$FLASHFILESIZE2 then echo " $FLASHFILE2 is correct" >>$LOGFILE else echo " $FLASHFILE2 is incorrect" >>$LOGFILE fi sleep 50 # Nice screen art echo -e "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" echo echo " $RELEASETITLE based on raincoat 0.5" echo " =======================================================" echo echo " Modified release by Professor_jonny." echo echo " Check http://www.xbmc4xbox.org.uk for news and updates." echo echo " Press A to flash 256k bios" echo echo " Press X to flash 512k bios" echo echo " Press Y to flash 1024k bios" echo echo " Press B to shutdown with out flash or wait" echo echo " !!!!WARNING!!!!!" echo " SELECT THE CORRECT ONE AND BE SURE THE BIOS IS THE CORRECT SIZE IN THE XBOX APP DIR" echo echo " --------------------------------------" echo # If no key is pressed with in 10 seconds shutdown console (in a nice way) if read -n 1 -t 10 RESPONCE; then echo "Great, you made it in time!" wait 5 else echo "Sorry, you are too slow in selecting an option and I will now shutdown!" wait 5 sleep 50 halt -n -f -p fi #----------------------------------------------------- # user selected X Flash 256k bios if $responce -eq X then # Flash procedure script cd $FLASHAPPPATH /bin/test -e $XBOXMOUNTPATH/$ORGBIOSFILE FILEEXIST=$? if /bin/test $FILEEXIST -ne $ZEROCOND then /bin/raincoat -r $XBOXMOUNTPATH/$ORGBIOSFILE -v >>$LOGFILE echo " " >>$LOGFILE echo " Saved original bios..." fi /bin/raincoat -p $FLASHFILE0 -v >>$LOGFILE FLASHRTN=$? if /bin/test $FLASHRTN -eq $ZEROCOND then echo " " >>$LOGFILE echo " Flashed ok..." echo " Power off..." cd / sleep 15 halt -n -f -p else echo " " >>$LOGFILE echo " Flashing failed, check $LOGFILE for result..." echo " DVD tray eject..." cd / sleep 15 eject.xbox.real while : do sleep 5 done fi fi #----------------------------------------------------- # user selected X Flash 512k bios if $responce -eq X then # Flash procedure script cd $FLASHAPPPATH /bin/test -e $XBOXMOUNTPATH/$ORGBIOSFILE FILEEXIST=$? if /bin/test $FILEEXIST -ne $ZEROCOND then /bin/raincoat -r $XBOXMOUNTPATH/$ORGBIOSFILE -v >>$LOGFILE echo " " >>$LOGFILE echo " Saved original bios..." fi /bin/raincoat -p $FLASHFILE1 -v >>$LOGFILE FLASHRTN=$? if /bin/test $FLASHRTN -eq $ZEROCOND then echo " " >>$LOGFILE echo " Flashed ok..." echo " Power off..." cd / umount $XBOXMOUNTPATH sleep 15 halt -n -f -p else echo " " >>$LOGFILE echo " Flashing failed, check $LOGFILE for result..." echo " DVD tray eject..." cd / sleep 15 eject.xbox.real while : do sleep 5 done fi fi #----------------------------------------------------- # user selected Y Flash 1024k bios if $responce -eq Y then # Flash procedure script cd $FLASHAPPPATH /bin/test -e $XBOXMOUNTPATH/$ORGBIOSFILE FILEEXIST=$? if /bin/test $FILEEXIST -ne $ZEROCOND then /bin/raincoat -r $XBOXMOUNTPATH/$ORGBIOSFILE -v >>$LOGFILE echo " " >>$LOGFILE echo " Saved original bios..." fi /bin/raincoat -p $FLASHFILE2 -v >>$LOGFILE FLASHRTN=$? if /bin/test $FLASHRTN -eq $ZEROCOND then echo " " >>$LOGFILE echo " Flashed ok..." echo " Power off..." cd / sleep 15 halt -n -f -p else echo " " >>$LOGFILE echo " Flashing failed, check $LOGFILE for result..." echo " DVD tray eject..." cd / sleep 15 eject.xbox.real while : do sleep 5 done fi fi #----------------------------------------------------- # dont flash user selected shutdown if $responce -eq B then echo " Flashing failed, user selected shutdown" >>$LOGFILE echo " Flashing failed, check $LOGFILE for result..." sleep 15 halt -n -f -p fi # end game.cfg stored on fatx Code: #!/bin/bash #----------------------------------------------------- # game.cfg xboxdrv keyboard setup file stored on xbox @ $XBOXMOUNTPATH # # # (c) Copyright 2013 Professor_jonny # All Rights Reserved. # # http://www.xbmc4xbox.org.uk # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation. # # This material is provided AS-IS" and at no charge if it # makes your toaster catch fire dont blame me. # # (c) Copyright 2013 #----------------------------------------------------- # # # A is keyboard key A # B is keyboard key B # X is keyboard key X # Y is keyboard key Y [xboxdrv] ui-clear=true trigger-as-button = true silent = true [ui-buttonmap] a = KEY_A b = KEY_B x = KEY_X y = KEY_Y # EOF #
Powered by SMF 1.1.20 |
SMF © 2013, Simple Machines
|