maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Alternatives (https://talk.maemo.org/forumdisplay.php?f=36)
-   -   N900 rescue OS - testing release (https://talk.maemo.org/showthread.php?t=75369)

NIN101 2011-07-31 15:08

N900 rescue OS - testing release
 
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 :-).

prankster 2011-07-31 15:15

Re: N900 rescue OS - testing release
 
oh man ,this is gonna get everyone crazy ,its awesome.. man !! great work .

abill_uk 2011-07-31 15:21

Re: N900 rescue OS - testing release
 
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 2011-07-31 19:53

Re: N900 rescue OS - testing release
 
still i didnt get what actually it does ?

kingoddball 2011-08-02 03:12

Re: N900 rescue OS - testing release
 
Quote:

Originally Posted by cutehunk04 (Post 1061858)
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...

NIN101 2011-08-02 09:29

Re: N900 rescue OS - testing release
 
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.

Nokia 5700 2011-08-03 00:48

Re: N900 rescue OS - testing release
 
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.

GSMobserver 2011-08-03 04:35

Re: N900 rescue OS - testing release
 
"maemo code cracking" as per your list of features...


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

RobbieThe1st 2011-08-03 12:26

Re: N900 rescue OS - testing release
 
Quote:

Originally Posted by NIN101 (Post 1062690)
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

isfr21 2011-08-12 12:35

Re: N900 rescue OS - testing release
 
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? :)


All times are GMT. The time now is 16:07.

vBulletin® Version 3.8.8