Reply
Thread Tools
Posts: 115 | Thanked: 342 times | Joined on Dec 2010
#1
A rescue initrd for the N900. It can mount the maemo rootfs, can access the EMMC, has mass-storage support, USB networking cababilities and WiFi support. It can also charge the battery (which it currently doesn't automatically, please refer to the documentaiton for that).

Please keep in mind that this is a testing release which might mean that something won't work. It comes with absolutely no warranty! Usage at own risk
To use it, you need to be familiar with the linux console.

Version 1.3:
Download: here mirror

This project should not be confused with the meego rescue initrd.

Thanks to: The meego project(mainly for the kernel), #maemo on freenode and everyone who's work I have used here :-).

Last edited by NIN101; 2016-11-04 at 22:24. Reason: Information
 

The Following 99 Users Say Thank You to NIN101 For This Useful Post:
AapoRantalainen, aathava, abill_uk, ade, ahmadamaj, Alfred, amin007110, arora.rohan, Bahador, behrooz, bingomion, c4rl05, Captwheeto, cHeXs7eR, conred, Copernicus, corduroysack, cproc, DA5, debernardis, Dongle Fongle, don_falcone, dzano, eddieselamp, ejasmudar, elyout, enne30, ersanpermana, Estel, evujumenuk, Fabry, fw190, glabifrons, gregoranderson, Halftux, Helmuth, hirabayashitaro, Hurrian, iHaveNoNames, isfr21, ivyking, joerg_rw, JorgeFX, jpala16, juiceme, krutznikov, Lemonadium, Macros, Magik, Maj3stic, Marshall Banana, MartinK, Megaltariak, melisa queen, Mentalist Traceur, MFaroTusino, michaelxy, moepda, mosiomm, mrsellout, mr_jrt, mr_pingu, n0idea, N900L, Netweaver, nicolai, nkirk, Oboroten, onil, p24, panjgoori, Pantokrator, peterleinchen, pichlo, prankster, PUNK, reinob, saponga, scy, sethkha, shanttu, sicelo, Sin, sinaisix, Skaven2k2, Skry, Sohil876, Sourav.dubey, SSLMM, techno2001, Tempura San, thomasjfox, unknown.obvious, viktor80, Wikiwide, wnt, wumpwoast, Zaerc, zoner
Banned | Posts: 695 | Thanked: 308 times | Joined on Apr 2011 @ originally pakistan ,now in china
#2
oh man ,this is gonna get everyone crazy ,its awesome.. man !! great work .
 
Banned | Posts: 3,412 | Thanked: 1,043 times | Joined on Feb 2010
#3
Yep sounds good to me keep up the great work, sounds like this is going to be something everyone needs at some point or other, great work !!!.
 
cutehunk04's Avatar
Posts: 472 | Thanked: 195 times | Joined on Jun 2010 @ India, Mumbai
#4
still i didnt get what actually it does ?
__________________
Knowledge is knowing a tomato is a fruit; Wisdom is not putting it in a fruit salad
 
kingoddball's Avatar
Posts: 1,187 | Thanked: 816 times | Joined on Apr 2010 @ Australia
#5
Originally Posted by cutehunk04 View Post
still i didnt get what actually it does ?
I'm a little puzzled by this as well. BackupMenu also has these features (USB mount etc).

But! Any new OS is great! Time to download and prod and probe...
__________________
The thanks button? Sure! You can press it! I would!
 
Posts: 115 | Thanked: 342 times | Joined on Dec 2010
#6
BackupMenu is good. In fact, in many cases, stuff invoked from /sbin/preinit(for example, a shell, or BackupMenu), is sufficient to fix messed up things. Under normal circumstances, you won't need a rescue os. But:

-BackupMenu has to be already installed before you break your things. It can not help you afterwards, if you didn't have backups(you should :-) ).

-It can not help you(say by providing a shell) in some worst case scenarios (say a borked busybox, broken libc, syntax errors in /sbin/preinit prior to backupmenu.sh execution), simply because it is not designed for that and couldn't do it by design. Flashing would be required anyway.

So, RescueOS and BackupMenu are two different things which can hardly be compared. RescueOS has been created for one simple reason: There wasn't imho a non-PITA solution known to me out there to mount your rootfs and access the EMMC partitions with a broken maemo system.

Once RescueOS can charge the battery, I think more people will find a usecase for it.
 

The Following 10 Users Say Thank You to NIN101 For This Useful Post:
Posts: 298 | Thanked: 197 times | Joined on Dec 2009 @ Norway
#7
Sweet!
I love recovery terminals like these.
It would be nice to have this as a simple recovery solution. Which text editors does it have?
I do hope it has nano? Because vi just wouldn't work without an Escape button.

But there is a small fact that not many know about. If you have NITDroid, you basically have a recovery solution. At least in UMay, you find a terminal app in the Dev Tools app. And root privilieges are simple to acquire. From there, you actually find all Maemo partitions mounted in /mnt/... And that's it.

Last edited by Nokia 5700; 2011-08-03 at 00:51.
 

The Following 2 Users Say Thank You to Nokia 5700 For This Useful Post:
Posts: 4 | Thanked: 3 times | Joined on Sep 2010
#8
"maemo code cracking" as per your list of features...


this is going to be good,,looking forward to the final version..
 

The Following User Says Thank You to GSMobserver For This Useful Post:
Posts: 842 | Thanked: 1,197 times | Joined on May 2010
#9
Originally Posted by NIN101 View Post
Once RescueOS can charge the battery, I think more people will find a usecase for it.
If you can find an i2cget/i2cset binary(or copy/compile Pali's one), charging the battery should be simple. Here's the script I've been using with Backupmenu:
Code:
#/bin/bash
# Reset

#echo -n Reset...
#i2cset -y -m 0x80 2 0x6b 0x04 80
#echo -n Done. Sleep 1...
#sleep 1
#echo -n Done.

#echo "Charger: " $(cat /sys/devices/platform/musb_hdrc/charger)

# Disable charger for configuration:
i2cset -y 2 0x6b 0x01 0xcc # No limit, 3.4V weak threshold, enable term, charger disable


# Register 0x04
# 8: reset
# 4: 27.2mV  # charge current
# 2: 13.6mV
# 1: 6.8mV
# 8: N/A
# 4: 13.6mV # termination current
# 2: 6.8mV
# 1: 3.4mV
# 7-1250 6-1150 5-1050 4-950 3-850 2-750 1-650 0-550
# 7-400 6-350 5-300 4-250 3-200 2-150 1-100 0-50
i2cset -y -m 0xFF 2 0x6b 0x04 0x50;

# Register 0x02
# 8: .640 V
# 4: .320 V
# 2: .160 V
# 1: .080
# 8: .040
# 4: .020 (+ 3.5)
# 2: otg pin active at high (default 1)
# 1: enable otg pin
i2cset -y -m 0xfc 2 0x6b 0x02 0x8c; 
# 4.2 = 3.5 + .640 + .040 + .02 = 8c
# 4.16 = 3.5 + .640V + .020 = 84
# 4.1 = 3.5 + .320 + .160 + .08 + .04 = 78
# 4.0 = 3.5 + .320 + .160 + .02 = 64
# 3.9 = 3.5 + .320 + .080 = 50

# Register 0x1
# 8: 00 = 100, 01 = 500, 10 = 800mA
# 4: 11 = no limit
# 2: 200mV weak threshold default 1
# 1: 100mV weak treshold defsult 1 (3.4 - 3.7)
# 8: enable termination
# 4: charger disable
# 2: high imp mode
# 1: boost
i2cset -y 2 0x6b 0x01 0xc8; 

# Register 0x00
# 8: Read:  OTG Pin Status
#    Write: Timer Reset
# 4: Enable Stat Pin
# 2: Stat : 00 Ready 01 In Progress
# 1:      : 10 Done  11 Fault
# 8: Boost Mode
# 4: Fault: 000 Normal 001 VBUS OVP 010 Sleep Mode 
# 2:        011 Poor input or Vbus < UVLO 
# 1:        100 Battery OVP 101 Thermal Shutdown
#           110 Timer Fault 111 NA
i2cset -y 2 0x6b 0x00 0x00; 

#echo -n "Charge parameters programmed. Sleep 1..."
sleep 1
#echo "Status: " $(i2cget -y 2 0x6b 0x00)
i2cset -y 2 0x6b 0x00 0x80 # timer reset
cat /sys/devices/platform/musb_hdrc/charger >/dev/null

# Initialize variables
THROTTLE=0
FULL=0
MODE="STANDBY"
WALLCHARGER=0

# Assuming a nice round number 20mOhm for bq27200 sense resistor
RS=20

get_nac ()
{
    NAC=$(i2cget -y 2 0x55 0x0c w)
    NAC=$(($NAC * 3570 / $RS / 1000))
}
get_rsoc ()
{
    RSOC=$(i2cget -y 2 0x55 0x0b)
    RSOC=$((RSOC))
}
get_volt ()
{
   VOLT=$(i2cget -y 2 0x55 0x08 w)
   VOLT=$(($VOLT))
}

STATUS=$(i2cget -y 2 0x6b 0x00)
while true ; do
   sleep 15; 
   STATUS=$(i2cget -y 2 0x6b 0x00)
   #echo $STATUS

   i2cset -y -m 0x80 2 0x6b 0x00 0x80; # timer reset
   get_nac
   get_rsoc
   get_volt

   if [ $MODE == "STANDBY" ] ; then
      if [ $STATUS == 0x10 ] || [ $STATUS == 0x90 ] ; then
         MODE="CHARGING"
         #echo $(date) "standby -> CHARGING. Current available capacity: " $NAC "mAh" >> /home/user/MyDocs/charger.log
         echo 60 > /sys/class/backlight/acx565akm/brightness
         WALLCHARGER=$(cat /sys/devices/platform/musb_hdrc/charger)
      fi
   fi
   if [ $MODE == "CHARGING" ] ; then
      if [ $STATUS == 0x00 ] ; then
         MODE="STANDBY"
         echo 15 > /sys/class/backlight/acx565akm/brightness
         #echo $(date) "charging -> STANDBY. Current available capacity: " $NAC "mAh" >> /home/user/MyDocs/charger.log
         WALLCHARGER=0
         # This will stop USB from eating power as long as you haven't plugged it into a PC
         echo 0 > /sys/devices/platform/musb_hdrc/connect
      fi
   fi

   if [ $STATUS == 0xa0 ] && [ $FULL == 0 ] ; then
      #echo "Charge done"
      #echo $(date) "FULL: " $NAC "mAh" >> /home/user/MyDocs/charger.log
      FULL=1
   fi
   if [ $STATUS == 0x00 ] && [ $FULL == 1 ] ; then
      FULL=0
   fi
   echo Status: $STATUS Mode: $MODE Full: $FULL WallCharger: $WALLCHARGER Battery Voltage: $VOLT NAC: $NAC Battery level: $RSOC %
done
One other thing: On your page you're talking about needing to copy over the wifi modules. Why not make it attempt to auto-copy those modules(and load them) on the first boot?
Seems like it'd make things simpler
__________________
My projects: BackupMenu - OS Backup & restore | Video: Flashing your n900(LiveCD)
My devices: N770 + 8GB SD card soldered internally, N900 with 8GB SD card + Custom OC(125-950 typically).
OC freqs: 0:22,90 125:22,90 250:28,180 500:30,360 550:32,400 600:34,430 700:39,430 750:41,430 805:45,430 850:47,500 900:50,500 950:54,500 1000:58,500 1100:67,520 1150:71,520
 

The Following 15 Users Say Thank You to RobbieThe1st For This Useful Post:
Posts: 201 | Thanked: 57 times | Joined on May 2010
#10
Wow this looks perfect for exactly what I'm dealing with right now. I need to get my broken screen n900 into mass storage mode. However, your solution seems a complicated. Any chance someone can guide me through the steps needed to get my phone into mass storage mode using your rescue OS?
 

The Following 2 Users Say Thank You to isfr21 For This Useful Post:
Reply

Thread Tools

 
Forum Jump


All times are GMT. The time now is 17:53.