Monday, May 19, 2008

N770 Project died durring setup

Some of you were waiting on my follow up post to my story about the Nokia N770 Internet tablet.

Short Answer: Wireless radio in the unit is non-functional, to the point that the kernel can not load firmware to the card during the module load.

The N770 is a great device in both hardware and user interface design. How ever, it takes too much work to get a root shell and then to figure out what is wrong with it. I don't think it would have been as hard to solve a problem other then the network being dead.

This is not my last try with a Nokia Internet Tablet! However, I think I will try the N800 next time. It has one feature that is a major difference from the N770, an SecureDigital (SD) slot instead of the MMC style slot for memory expansion.

Labels: , , , , , , , , ,

Friday, May 9, 2008

Nokia N770 battle

I got the Nokia N770 two days ago and I love it, so does Karri, the person I actually bought it for. Well I loved it up until I tried to get it attached to the wireless network.

This cute little device runs a slightly modified spin-off of the Debian Linux distribution. All is good in the world. I love Debian and I have a very Open Source toy that runs Linux.

The user interface is great, just click on the little globe near the top right corner of the screen and choose "Select Network". I thought this should not be that hard. So I did that. A dialog shows up and a small box says searching. I wait patiently, because there are a lot of networks in the building, most of them on the same channels. I keep waiting for about a minute longer and the searching box goes away. What, I am left with an empty dialog box. No networks at all.

Now I think, maybe it has a "flight mode", like many PDAs / Cell Phones have. I start looking around it for a physical switch. Find none. I then look through all the software and control panel on the device. Didn't find a thing there either. At this point, I am getting to the I'm missing something important that is staring me in the face stage.

Onto the Web I go, I visit everybody's friend Google. I searched for almost every word combination related to N770 and WLAN / Wireless. No luck, just a bunch of stuff about low signal strength. I know that shouldn't be the problem, since I was 5 foot from the Access point.

Again scratching my head for a new idea. I decided this may be a "firmware thing", so I went off to find new firmware. No luck, I already have the latest "Official" firmware. What to do next? Get shell and root access to the device. Now that is not as easy as it seems.

Yes this device is build on Linux. It is running GNOME. Well someone seems to have thought that no one would want to use xterm on it. Yes, thats right. The application that is normally installed right along with X was not there.

Off to the Web and Google again to find out how to install xterm. If I could have got the N770 on the net then it would have been very easy. The Application Manager included on the device works similarly to Synaptics on Debian / GNOME desktop. Aim it at a repository and select the package you want. Hmm, now we have problem two. We need to do apt-get, but no network. Snoop around the N770 software some more and I find in Application Manager a Install package from file. Still how to get the file over to the device.

The N770 does not use Secure Digital or Compact Flash memory cards. It uses MMC cards. Luckily my Nokia 6680 phone uses those and I have one in it for the camera and voice recorder. It's small 64MB, but Debian packages on a general are small and since this is a integrated low memory device, the packages should be that big. Those problems solved, where do I find the package.

Meamo http://meamo.org has a package repository. These are the folks who wrote the software these little devices run. A bit of hunting later, I have the package and it's dependencies. Just like I would have done on a Debian box with a package that was not in the apt-cache. Use your favorite browser to follow the link to the repository and jump into the "pool".

Ok, got that installed. Now lets use that terminal we got. It got installed into the main menu under a group called Extras. Start it up and wow we got an "sh$" prompt. Nokia being smart, did not make the front end user root. They didn't make it easy to get root easy either.

During my search for xterm, I saw a reference for a command "sudo gainroot". I executed the command and promptly got the response "if you want to break your device enable R&D mode". Again in my previous searches I saw this. This one of the functions of the Nokia propritory flasher utility, that is only available for Linux and Mac OS X. It is a small command line program that must be run as root or a user who is a member of a group with direct access to /dev/usb*

Got that done and rebooted the device. Into xterm we go again. "sudo gainroot" works this time. I did some snooping around to find out what was installed and then I went and ran "dmesg".

Wow, we got errors and more errors. Here is a copy of the output.

        / # dmesg
        
        M MMU, v=0xe0fff000, p=0x13c00000, sz=0x1000
[  137.866271] omapdsp: mapping in ARM MMU, v=0xe00
[  137.866546] omapdsp: mapping in ARM MMU, v=0xe00
[  137.866912] omapdsp: mapping in ARM MMU, v=0xe00
[  137.867065] omapdsp: frame buffer export
[  137.867126] omapdsp: mapping in ARM MMU, v=0xe00
[  137.867309] omapfb_notifier_cb(): event = READY
[  137.867370] omapfb_register_client(): success
[  137.867645] omapdsp: mapping in ARM MMU, v=0xe00
[  137.867858] omapdsp: mapping in ARM MMU, v=0xe00
[  137.867950] omapdsp: mapping in ARM MMU, v=0xe00
[  137.868103] omapdsp: mapping in ARM MMU, v=0xe00
[  137.868194] omapdsp: mapping in ARM MMU, v=0xe00
[  137.868286] omapdsp: mapping in ARM MMU, v=0xe00
[  137.868377] omapdsp: mapping in ARM MMU, v=0xe00
[  137.868469] omapdsp: mapping in ARM MMU, v=0xe00
[  137.868560] omapdsp: mapping in ARM MMU, v=0xe00
[  138.282531] omapdsp: IPBUF configuration
[  138.282562]            512 words * 16 lines at .
[  138.282806] omapdsp: found 4 task(s)
[  138.283081] omapdsp: task 0: name pcm0
[  138.283691] omapdsp: taskdev pcm0 enabled.
[  138.292327] omapdsp: task 1: name pcm1
[  138.292846] omapdsp: taskdev pcm1 enabled.
[  138.301910] omapdsp: task 2: name avsync
[  138.302398] omapdsp: taskdev avsync enabled.
[  138.311340] omapdsp: task 3: name audiopp
[  138.311889] omapdsp: taskdev audiopp enabled.
[  138.722137] hci_cmd_task: hci0 command tx timeot
[  138.722259] brf6150: Frame for non-running devie
[  139.411499] aic23 powering up
[  139.416137] aic23_init_power() done
[  139.737457] hci_cmd_task: hci0 command tx timeot
[  139.737548] brf6150: Frame for non-running devie
[  139.816741] omapdsp: mmap info: vmadr = 40016000
[  142.196197] aic23 powering down
[  152.388031] aic23 powering up
[  152.392486] aic23_init_power() done
[  158.977447] aic23 powering down
[  160.678497] aic23 powering up
[  160.682952] aic23_init_power() done
[  164.664978] aic23 powering down
[  165.187286] aic23 powering up
[  165.192108] aic23_init_power() done
[  165.196563] omapdsp: mmap info: vmadr = 40016000
[  167.595306] aic23 powering down
[  167.651885] aic23 powering up
[  167.656890] aic23_init_power() done
[  170.077423] aic23 powering down
[  172.935028] aic23 powering up
[  172.939605] aic23_init_power() done
[  175.305541] aic23 powering down
[  175.822814] aic23 powering up
[  175.827178] aic23_init_power() done
[  179.836761] aic23 powering down
[  183.522369] aic23 powering up
[  183.527008] aic23_init_power() done
[  186.618041] aic23 powering down
[  189.119628] aic23 powering up
[  189.123931] aic23_init_power() done
[  196.578948] aic23 powering down
[  196.995208] aic23 powering up
[  196.999542] aic23_init_power() done
[  211.774414] aic23 powering down
[  216.386260] aic23 powering up
[  216.390472] aic23_init_power() done
[  218.751007] aic23 powering down
[  232.676208] aic23 powering up
[  232.680450] aic23_init_power() done
[  235.040039] aic23 powering down
[  235.320861] aic23 powering up
[  235.325073] aic23_init_power() done
[  248.899444] aic23 powering down
[  249.854064] aic23 powering up
[  249.858276] aic23_init_power() done
[  252.219787] aic23 powering down
[  252.413543] aic23 powering up
[  252.417755] aic23_init_power() done
[  254.782226] aic23 powering down
[  259.350524] aic23 powering up
[  259.354736] aic23_init_power() done
[  268.970825] aic23 powering down
[  269.367004] aic23 powering up
[  269.371215] aic23_init_power() done
[  274.571228] aic23 powering down
[  274.734375] aic23 powering up
[  274.738647] aic23_init_power() done
[  277.102722] aic23 powering down
[  279.219818] aic23 powering up
[  279.224121] aic23_init_power() done
[  281.591094] aic23 powering down
[  288.797546] aic23 powering up
[  288.801818] aic23_init_power() done
[  292.846801] aic23 powering up
[  292.851013] aic23_init_power() done
[  296.641601] aic23 powering down
[  298.109283] aic23 powering up
[  298.113586] aic23_init_power() done
[  304.727691] aic23 powering down
[  306.255523] aic23 powering up
[  306.259735] aic23_init_power() done
[  308.625946] aic23 powering down
[  323.036560] aic23 powering up
[  323.040832] aic23_init_power() done
[  325.407623] Loading 3825.arm firmware
[  326.805480] aic23 powering down
[  352.432647] aic23 powering up
[  352.436859] aic23_init_power() done
[  354.797790] aic23 powering down
[  355.354705] aic23 powering up
[  355.358947] aic23_init_power() done
[  357.719757] aic23 powering down
[  358.657409] fw_upload: Not allowed to DMA write
[  358.657470] **** WLAN registers ****
[  358.657562] ARM_INT      -> 0x00000000 (32 bits)
[  358.657623] ARM_INT_ENA  -> 0x00000000 (32 bits)
[  358.657714] HOST_INT     -> 0x00000000 (32 bits)
[  358.657775] HOST_INT_ENA -> 0x00000000 (32 bits)
[  358.657867] HOST_INT_ACK -> 0x00000000 (32 bits)
[  358.657928] GP1_COMM     -> 0x00000000 (32 bits)
[  358.658020] GP2_COMM     -> 0x00000000 (32 bits)
[  358.658081] DEV_CTRL_STA -> 0x00000000 (32 bits)
[  358.658142] DMA_DATA     -> 0x0000 (16 bits)
[  358.658203] DMA_WR_CTRL  -> 0x0000 (16 bits)
[  358.658294] DMA_WR_LEN   -> 0x0000 (16 bits)
[  358.658355] DMA_WR_BASE  -> 0x00000000 (32 bits)
[  358.658416] DMA_RD_CTRL  -> 0x0000 (16 bits)
[  358.658477] DMA_RD_LEN   -> 0x0000 (16 bits)
[  358.658569] DMA_RD_BASE  -> 0x00000000 (32 bits)
[  358.658630] 3825.arm failed
[  358.777374] aic23 powering up
[  358.781585] aic23_init_power() done
[  359.001403] Loading 3825.arm firmware
[  361.141418] aic23 powering down
[  362.417510] aic23 powering up
[  362.421722] aic23_init_power() done
[  364.782165] aic23 powering down
[  364.919616] aic23 powering up
[  364.923950] aic23_init_power() done
[  367.289886] aic23 powering down
[  367.951538] aic23 powering up
[  367.955871] aic23_init_power() done
[  370.321105] aic23 powering down
[  372.856567] aic23 powering up
[  372.861267] aic23_init_power() done
[  381.492980] aic23 powering down
[  382.957275] aic23 powering up
[  382.961486] aic23_init_power() done
[  385.321136] aic23 powering down
[  385.512573] aic23 powering up
[  385.517486] aic23_init_power() done
[  387.883728] aic23 powering down
[  391.985534] fw_upload: Not allowed to DMA write
[  391.985595] **** WLAN registers ****
[  391.985687] ARM_INT      -> 0x00000000 (32 bits)
[  391.985748] ARM_INT_ENA  -> 0x00000000 (32 bits)
[  391.985839] HOST_INT     -> 0x00000000 (32 bits)
[  391.985900] HOST_INT_ENA -> 0x00000000 (32 bits)
[  391.985992] HOST_INT_ACK -> 0x00000000 (32 bits)
[  391.986053] GP1_COMM     -> 0x00000000 (32 bits)
[  391.986145] GP2_COMM     -> 0x00000000 (32 bits)
[  391.986206] DEV_CTRL_STA -> 0x00000000 (32 bits)
[  391.986267] DMA_DATA     -> 0x0000 (16 bits)
[  391.986358] DMA_WR_CTRL  -> 0x0000 (16 bits)
[  391.986419] DMA_WR_LEN   -> 0x0000 (16 bits)
[  391.986480] DMA_WR_BASE  -> 0x00000000 (32 bits)
[  391.986541] DMA_RD_CTRL  -> 0x0000 (16 bits)
[  391.986633] DMA_RD_LEN   -> 0x0000 (16 bits)
[  391.986694] DMA_RD_BASE  -> 0x00000000 (32 bits)
[  391.986755] 3825.arm failed
[  393.257934] aic23 powering up
[  393.262207] aic23_init_power() done
[  395.629730] aic23 powering down
[  405.082183] aic23 powering up
[  405.086395] aic23_init_power() done

I would say somethings wrong with the firmware loader.

Found a unofficial OS2007 flash for the N770. I will let you know how well it works in the next post.

Labels: , , , , , , , , , , , ,

Monday, November 20, 2006

Accessible Worlds, Linux for the Blind #1


Accessible World: Linux and the Blind


Presented By


Shawn L. Djernes


Monday, November 20, 2006 at 00 UTC


Program Outline.



  1. Glenn's Intro

    1. Shawn will cover

      1. A Brief History of Linux
      2. Why you may want to use Linux in your Home/Office
      3. Ways of accessing a Linux system.
      4. What kind of and status of screen access technology their currently is for Linux, and coming in the future
      5. Provide Links on his blog to the sites where you can find more information and download things to try.

    2. Shawn's Biography

      1. June 3, 1976 Born is Aurora, NE
      2. 1980 Started working with computer on the Apple II at age 4
      3. 1989 Moved to the Macintosh LC at age 13
      4. 1990 Got his first taste of Unix and the Internet with shell account from Nebraska Department of Education at age 14
      5. 1993 During High School was introduced to the PC world
      6. Summer of 1994 attended WAGES and worked for Bryan Memorial Hospital in the Information Services department
      7. Same summer attended the first session of Nasa's Space Camp for Blind Youth.
      8. 1995, May Graduated Grand Island Senior High School
      9. Summer of 1995 attended a internship program at the National Air and Space Museum of the Smithsonian Institute in Washington DC, while there worked with OS/2 and Screen Reader/2 testing applications for accessibility.
      10. Fall 1995 got a PC and my first copies of Jaws for Windows and Jaws for DOS and a Type 'n Speak
      11. Summer 1996 through early spring 1997 Attended the Orientation Center
      12. 1997 did contract work for NSVI and other private companies / people.
      13. Summer 1997 met Brian Blazie and discussed a technical support job. Started working for Blazie in August/September.
      14. Winter 1997 bought my first copy of Red Hat linux and started running it on an old 386 machine as a mail server and router.
      15. Summer 1998 Met Brenda Loughrey during a training on Telesensory Products that Blazie had purchased rights to. Discussed her need of a technician for her new Access Technology Company. Interviewed Halloween Weekend 1998 after being in a car accident on my way up for Maryland to Pittsburgh PA. Started working for Athena Computer Technologies December 1st 1998
      16. Spring 1999 Went to my first WPLUG (Western Pennsylvania Linux User Group) meeting and shortly there after met Frank Carmickle and started exploring the Blindness side of Linux
      17. 2001 got introduced to the Asterisk PBX project and started working with it as a phone system on Linux
      18. 2003 got introduced to the MythTV DVR project and started using Linux to record TV
      19. 2003 Athena Computer Technology Closes
      20. 2004 Start back to College in Application Development
      21. August 2004, My Sister's Wedding, NCBVI's first Technology Expo, and A Job opening for the Omaha Program Specialist of NCBVI all happen at the same time. In one week I watch my sister get married I help with a Workshop and Get interviewed for a Job and fly back to Pittsburgh to start classes again the next Monday.
      22. September 2004 start working for NCBVI as a staff trainee.
      23. Maintained a Consulting Business doing web design and hosting and customer accessible network configuration / application design.
      24. Spring 2005 give my first Asterisk Talk at the OLUG (Omaha Linux Users Group).

  2. Shawn Starts.

    1. A Brief History of Linux

      1. Unix

        1. 1971 Bell Unix
        2. 1985 Richard Stallman's Manifesto starts the Free Software Foundation and the GNU OS / the GPL
        3. 1987 Linus Torvalds is Introduced to GNU Minux as a Computer Science Student.

      2. Linux

        1. 1991 August Linus Torvalds announces his hobby OS on a GNU list. Later asking for help on making it more workable. Releases 0.1 under the GNU License in December which Organizations like Debian, RedHat and others start distributing.
        2. 1999 RedHat and several other Linux Based Businesses go public. Large Companies such as IBM and Dell start supporting Linux on their hardware.
        3. 2001-2003 Linux Embedded starts to show up in various mass marketed products, such as Cable DSL Router, Home Entertainment Devices, MP3 Players and many other categories.

    2. Why you may want to use Linux in your Home/Office

      1. You need a place on your network to backup or share files with Coworkers or Family
      2. You want a firewall / Web parental control system that you have full control of.
      3. You are interested in Home Automation and wish to have an accessible control interface for both you and your family.
      4. You or someone you know needs a system to do basic to advanced computing but can not afford or does not want to pay expensive cost for restrictively licensed software.
      5. All or note of the above. You think of it Linux probably has a way to do it.

    3. Ways of accessing a Linux system

      1. Directly with a Keyboard, Mouse and Monitor (last 2 optional), on the console of the machine
      2. Through a Terminal / Remote connection program running on another computer.

        1. A direct cable from one computer's serial port to the Linux system
        2. Using telnet protocol over a network connection, *Very Insecure, Not recommended*
        3. Using SSH (Secure Shell) over a network connection. Some Recommended Programs:

          1. Windows: CygWin OpenSSH client
          2. DOS: Don't know one
          3. Mac OS X: ssh command in terminal

        4. File Transfer / Sharing: FTP, Windows File Sharing w/ Samba, NFS
        5. Web Browser, some of the best applications for Linux are web based

    4. What kind of and status of screen access technology their currently is for Linux, and coming in the future

      1. Currently Available

        1. SpeakUp -- For the Text Console

          1. Kernel Based, speech from load to power off
          2. Very Stable at Release 2.0
          3. Now supports both Software speech (ttsynth and others) and older hardware synthesizers.
          4. Available in many distributions.

        2. BRLtty -- For the Text Console

          1. Daemon that talks directly to the Console Driver
          2. Supports Most Braille Displays on the market.
          3. Beginning to have speech support.
          4. Available in many distributions.

        3. ORCA -- X Windows GUI / GNOME

          1. Works with GNOME 2.14 and 2.16
          2. Python based and scriptable.
          3. Works with Java applications
          4. Uses gnome-speech or emacspeak driver to access synthesizers
          5. Currently has Speech, Braille, and Magnification interfaces.
          6. Many Accessible Applications available and more coming
          7. Packages available for Ubuntu Dapper Drake and Fedora Core 6

      2. Coming Soon

        1. KDE Accessibility

          1. Currently Planed for KDE 4
          2. Modular using DCOP

    5. Useful Links

      1. Distributions

        1. Debian
        2. Fedora Core
        3. Ubuntu

      2. SpeakUpmodified.org

  3. Questions
  4. Wrap-up

Labels: , , , , , , , , , , , , ,