Acer Aspire One?

Hi,

Just wondering if anyone has installed Arduino on the Linpus version of the Acer Aspire One?

Im just about to start some tests now - likely problem areas are incompatible JVM, lack of GCC and Avrdude etc, but who knows what else is missing. A lengthy bit of googling brings back basically nothing, but if somome has already done some work on this please let me know - even if it didnt work out.

Happy 2009!

OK a quick update of where Im up to at the moment - as Im fairly close I feel...

Ive based my steps on the standard fedora core 8 install from the playground - http://www.arduino.cc/playground/Linux/Fedora

I have done a standard yum based install of the likely libs and apps:

[root@localhost ~]# yum install avr-gcc avr-binutils avrdude avr-gdb avr-gcc-c++ uisp Setting up Install Process Parsing package install arguments Resolving Dependencies --> Running transaction check ---> Package avr-gdb.i386 0:6.6-5.fc8 set to be updated ---> Package avr-gcc.i386 0:4.1.2-5.fc8 set to be updated ---> Package avr-binutils.i386 0:2.17-4.fc8 set to be updated ---> Package avrdude.i386 0:5.5-2.fc8 set to be updated ---> Package avr-gcc-c++.i386 0:4.1.2-5.fc8 set to be updated --> Finished Dependency Resolution

Dependencies Resolved

=============================================================================

Package Arch Version Repository Size

Installing: uisp i386 20050207-1.fc8 fedora 59 k avr-gcc-c++ i386 4.1.2-5.fc8 fedora 2.1 M avr-gdb i386 6.6-5.fc8 fedora 2.0 M avrdude i386 5.5-2.fc8 updates-newkey 513 k Installing for dependencies: avr-binutils i386 2.17-4.fc8 fedora 2.8 M avr-gcc i386 4.1.2-5.fc8 fedora 2.4 M

Transaction Summary

Install 6 Package(s) Update 0 Package(s) Remove 0 Package(s)

Total download size: 9.8 M Is this ok [y/N]: y Downloading Packages: (1/6): avr-gcc-c++-4.1.2- 100% |=========================| 2.1 MB 00:03 (2/6): avrdude-5.5-2.fc8. 100% |=========================| 513 kB 00:00 (3/6): avr-binutils-2.17- 100% |=========================| 2.8 MB 00:04 (4/6): avr-gcc-4.1.2-5.fc 100% |=========================| 2.4 MB 00:04 (5/6): avr-gdb-6.6-5.fc8. 100% |=========================| 2.0 MB 00:03 (6/6): uisp-20050207-1.fc 100% |=========================| 59 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: avr-binutils ######################### [1/6] Installing: avr-gcc ######################### [2/6] Installing: avr-gdb ######################### [3/6] Installing: avrdude ######################### [4/6] Installing: avr-gcc-c++ ######################### [5/6] Installing: uisp ######################### [6/6]

Installed: avr-gcc-c++.i386 0:4.1.2-5.fc8 avr-gdb.i386 0:6.6-5.fc8 avrdude.i386 0:5.5-2.fc8 uisp.i386 Dependency Installed: avr-binutils.i386 0:2.17-4.fc8 avr-gcc.i386 0:4.1.2-5.fc8 Complete!

Followed by a standard un-tar of the arduino archive to a folder in the /user/Documents area

Running arduino at this point brings up the gui OK, but reports the following bunch of errors:

[user@localhost arduino-0012]# ./arduino Experimental: JNI_OnLoad called.

Stable Library

Native lib Version = RXTX-2.1-7 Java lib Version = RXTX-2.1-7

EEPROM.cpp:24:24: error: avr/eeprom.h: No such file or directory In file included from /home/user/Apps/arduino-0012/hardware/cores/arduino/WConstants.h:1, from EEPROM.cpp:25: /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:28:20: error: avr/io.h: No such file or directory In file included from EEPROM.cpp:26: EEPROM.h:23:22: error: inttypes.h: No such file or directory /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:92: error: 'uint8_t' does not name a type /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:93: error: 'uint8_t' does not name a type /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:97: error: variable or field 'pinMode' declared void /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:97: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:97: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:97: error: initializer expression list treated as compound expression /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:98: error: variable or field 'digitalWrite' declared void /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:98: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:98: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:98: error: initializer expression list treated as compound expression /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:99: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:100: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:101: error: variable or field 'analogReference' declared void /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:101: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:102: error: variable or field 'analogWrite' declared void /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:102: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:102: error: expected primary-expression before 'int' /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:102: error: initializer expression list treated as compound expression /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:122: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:122: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:122: error: expected primary-expression before 'unsigned' /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:122: error: initializer expression list treated as compound expression /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:124: error: variable or field 'shiftOut' declared void /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:124: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:124: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:124: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:124: error: 'byte' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:124: error: initializer expression list treated as compound expression /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:126: error: variable or field 'attachInterrupt' declared void /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:126: error: 'uint8_t' was not declared in this scope /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:126: error: expected primary-expression before 'void' /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:126: error: expected primary-expression before 'int' /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:126: error: initializer expression list treated as compound expression /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:127: error: variable or field 'detachInterrupt' declared void /home/user/Apps/arduino-0012/hardware/cores/arduino/wiring.h:127: error: 'uint8_t' was not declared in this scope EEPROM.h:28: error: 'uint8_t' does not name a type EEPROM.h:29: error: 'uint8_t' has not been declared EEPROM.cpp:40: error: 'uint8_t' does not name a type EEPROM.cpp:45: error: 'uint8_t' has not been declared EEPROM.cpp: In member function 'void EEPROMClass::write(int, int)': EEPROM.cpp:47: error: 'eeprom_write_byte' was not declared in this scope

Which seems to suggest its struggling to find the header files - but they are however in the correct place:

The bit I cant seem to find is the avr/something path that is mentioned?

Ive not used sun java by the way - as other forums suggest that installing another JVM on the AA1 causes problems - possibly this may be contrinbuting to the problem??

Thoughts anyone??

duh!

missing to install avr-libc does kinda make for the above result!

Warning messages at first run - but no crtitcal ERRS now...

Experimental: JNI_OnLoad called.

Stable Library

Native lib Version = RXTX-2.1-7 Java lib Version = RXTX-2.1-7

Print.h:32: warning: 'class Print' has virtual functions but non-virtual destructor Client.h:6: warning: 'class Client' has virtual functions but non-virtual destructor Server.h:12: warning: 'class Server' has virtual functions but non-virtual destructor Client.h:6: warning: alignment of 'Client::_ZTV6Client' is greater than maximum object file alignment. Using 1 Print.h:32: warning: 'class Print' has virtual functions but non-virtual destructor Client.h:6: warning: 'class Client' has virtual functions but non-virtual destructor Server.h:12: warning: 'class Server' has virtual functions but non-virtual destructor Print.h:32: warning: 'class Print' has virtual functions but non-virtual destructor Print.h:32: warning: 'class Print' has virtual functions but non-virtual destructor Client.h:6: warning: 'class Client' has virtual functions but non-virtual destructor Server.h:12: warning: 'class Server' has virtual functions but non-virtual destructor Server.h:12: warning: alignment of 'Server::_ZTV6Server' is greater than maximum object file alignment. Using 1 /home/user/Apps/arduino-0012/hardware/cores/arduino/Print.h:32: warning: 'class Print' has virtual functions but non-virtual destructor /home/user/Apps/arduino-0012/hardware/cores/arduino/HardwareSerial.h:28: warning: 'class HardwareSerial' has virtual functions but non-virtual destructor /home/user/Apps/arduino-0012/hardware/cores/arduino/Print.h:32: warning: 'class Print' has virtual functions but non-virtual destructor LiquidCrystal.h:7: warning: 'class LiquidCrystal' has virtual functions but non-virtual destructor /home/user/Apps/arduino-0012/hardware/cores/arduino/HardwareSerial.h:28: warning: 'class HardwareSerial' has virtual functions but non-virtual destructor LiquidCrystal.h:7: warning: alignment of 'LiquidCrystal::_ZTV13LiquidCrystal' is greater than maximum object file alignment. Using 1 /home/user/Apps/arduino-0012/hardware/cores/arduino/Print.h:32: warning: 'class Print' has virtual functions but non-virtual destructor /home/user/Apps/arduino-0012/hardware/cores/arduino/HardwareSerial.h:28: warning: 'class HardwareSerial' has virtual functions but non-virtual destructor

and even when run as root I dont seem to be able to see the USB port...

OK... not quite there yet

When you plug the Arduino in to the Acer, do you get a ttyUSB0 serial port node appearing in /dev directory? Maybe you could post the output from 'dmesg' after you've plugged it in? I'm interested in the outcome of this, as we have a number of people in the local Linux User Group and also at Dorkbot Bristol who might want to use the Arduino with mini-laptops running Linux.

The lack of serial / usb seems to be a groups issue...

normally I would run a usermod -G to add the user (in this case user) to the groups lock and uucp

however having done this the aspire now fails to log the user in at X startup. Im still diagnosing that - possibly finger trouble. If I cant be certain I will restore a baseline install and repeat...

more later

as promised an update... though not much of one

Currently Ive not managed to debug why the AA1 stops booting after X starts, Ive booted off a DSL usb install, mounted the SSD on the AA1 and edited back the groups file etc, but for some reason its just not happening. Still no desktop.

I tried writing out the restore CD to a usb stick (my USB cdrom drive is elsewhere right now) but that bombs out at 80% during the write, so I cant drop the AA1 back to a baseline right now. somewhat frustrating as Ive been tatting with this since about 10am today (its midnight now!)

Two options remain at this stage -

1) wait til I can grab my USB CDROM tomorrow, drop a fresh install back on and retry

or

2) drop on the ubuntu UNR distro https://wiki.ubuntu.com/UNR and then install arduino the usual way.

Personally #2 seems a better option for my use (despite having to re-install all the tweaks Ive already done - skype, ssh, openvpn etc etc etc). However I also need to know if its possible to shoehorn arduino onto an unmodified AA1, as likewise I run the local LUG and also will be teaching a variety of arduino based workshops for the LUG, local ham radio group and for some paying customers over the next couple of m onths. The AA1 netbook provides a very cheap and portable platform for the workshops, compared to fitting out a room with a dozen PCs and networking its a fraction of the cost and (hopefully!) less hassle.

cant do any more tonight - too tired and without CDROM drive im a bit stuffed... tomorrow perhaps... watch this space... as they say. It might be a few days before I get chance to drop an original AA1 image back, but I will try and make time to do so and to test the install sequence again. Looking at my bash_history its plain that it wasnt just "finger trouble" issues so there still needs to be some more 'sperrymentin' yet.

If anyone else gets any further please post.

oh... For reference - the out-of-the-box JVM seemed to work fine by the way, so as a starting point follow the fedora core 8 install sequence but ignore the JVM stuff - only the yum installs and group mods.

hmmmm.... Having just installed the ubuntu netbook distro instead of linpus I cant think of any convincing reasons to put linpus back on!

Install was flawless - I just wrote the img file to USB and booted from that. Everything seems to work. Most of the stuff I had to add as tweaks to linpus is already on here....

Yup... that about settles it... Ive gone over to the dark side ;)

future posts will focus on installing arduino on the ubuntu version. I will write up a description of the arduino install and full details of swapping the OS to ubuntu netbook.

more shortly

Yup... far and away easier under ubuntu UNR

sudo apt-get install gcc-avr avr-libc

Agree to the dependencies

tar -zxvf arduino-0012-linux.tgz

Thats it! Ive not even bothered using the sun JVM and it looks to be a solid worker

Full writeup will follow on my blogsite : - http://chrisjw.blogspot.com/

Glad to hear that it all worked with a few "apt-get"s! So, do you think that the Acer is the smallest Arduino programming host? How about the MIPS-based mini-laptops like the Maplin product and the Elonex One? Personally, I'd like to be able to use my old Toshiba Libretto 50CT, but that has no USB. Maybe with a PCMCIA USB adaptor...

I tend to think the AA1 gives best balance of screen size and keyboard practicality, but certainly there are a variety of sub-mini netbooks now which could be a suitable platform.

Ive been wondering for a while how best to do arduino workshops for groups and was erring towards relying on people to bring their own laptops along. However, from practical experience of just such a session what should be a 15 minute guided install can become half a day can be wasted when someone turns up with a “difficult” laptop.

My next thought was a bunch of mini-itx based boxes, but by thetime you factor in keyboard, mouse and networking etc it becomes a big deal. What I plan to do now is stock up on half a dozen AA1s or similar. Still invite group attendees to bring their own laptops, but at the first sniff of an install becoming “difficult” hand them a pre-config’d AA1 ready to go so we dont lose any time…

It also opens a few other teaching avenues for some of the security and admin training I have to do from time to time.

My next task is to look at using an imaging tool, possible PING http://ping.windowsdream.com/ to get a baseline image off the AA1 so I can drop a clean version back onto one before a new session (handy for when you manage to kill your current install too!)

I also need to double check that the arduio IDE doesnt have problems without the correct JVM, though under ubuntu its a bit easier to get away with multiple java machines anyway if that proves to be the case.

In some ways Im a little sad that I sold out so quick and went down the ubuntu avenue, but it really is by far the better OS for users looking for something beyond a “big PDA” which is what linpus offers.

No time tonight, but a better writeup on my blog possibly tomorrow

You might find our experiences with the Asus EEE PC interesting - threads here http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1200721730 and here http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1197051207

Andrew

I just wanted to write a quick note to say I got my Aspire One with Linpus working with the Arduino perfectly.

I don't have a step by step guide or anything but essentially I did the following:

Download and uncompress the Arduino environment as per normal, e.g:

wget http://www.arduino.cc/files/arduino-0012-linux.tgz
tar zxvf arduino-0012-linux.tgz

Install the avr tools:

sudo yum install avr-gcc avr-libc avr-gcc-c++

Add the user to the lock and uucp groups (don't know if this is required but I saw it posted here):

usermod -a -G uucp user
usermod -a -G lock user

And then the critical bit that nobody else seems to have done.....you need the USB to Serial drivers (kernel modules) which are usbserial.ko and ftdi_sio.ko. Because Linpus Lite has been stripped down and optimised it doesn't come with FTDI support as standard.

So you just need to compile the module. You can adapt the instructions found here for compiling the bluetooth module by someone called Jesse Osby:

http://macles.blogspot.com/2008/10/new-applications-for-acer-aspire-one.html

Just adapt the procedure to compile FTDI_SIO instead of bluetooth.

Once compiled, copy the module over (and my usbserial.ko module seemed to vanish so I copied over that as well):

sudo cp -fv drivers/usb/serial/ftdi_sio.ko /lib/modules/2.6.23.9lw/kernel/drivers/usb/serial/
sudo cp -fv drivers/usb/serial/usbserial.ko /lib/modules/2.6.23.9lw/kernel/drivers/usb/serial/

Tell Linux to check for new modules:

sudo depmod -a

Then plug in your Arduino. When I type dmesg I can see it being detected correctly:

usb 2-1: new full speed USB device using uhci_hcd and address 2
usb 2-1: configuration #1 chosen from 1 choice
usbcore: registered new interface driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial Driver core
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Seri
al Device
ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
drivers/usb/serial/ftdi_sio.c: Detected FT232RL
usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0
usbcore: registered new interface driver ftdi_sio
drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver

Launching the Arduino IDE in the usual way I can set it to use ttyUSB0. I compiled and uploaded a sketch and it worked perfectly. I even added an Arduino icon to the Aspire desktop.

Only problem I had was when first running the Arduino environment it threw up some warnings as seen on here but subsequently it works fine with no errors. Also first time I compiled a sketch it complained about not being able to determine the size or something but again subsequently it has worked fine.

Using Alt+F11 I can make the Arduino IDE full screen and it makes for some awesome portable Arduino development. The only niggle that remains is the font on the menus is too large for my liking, must be a JVM setting I can change for that but haven't looked into it yet!

I have Debian running on another netbook and although Debian works great I still prefer to keep Linpus Lite on the AA1 because it boots so fast and has only what I need without bloat.

Hope this helps someone.

Thanks for posting that, corone!

Hi Corone,

Thanks for that update on Arduino on Linpus. Ive just tested it on a spare AA1 and yes, I also have it working. I have forwarded details on to the rest of our group.

I think however personally Im going to stick with ubuntu UNR on my AA1 and those Im going to be teaching with now. It seems every App I want to install on Linpus needs yet another kernel module compiling, and everything seems a struggle. Perhaps Im biased in that my day job centers around ubuntu & debian and its what Immost familar with, but Linpus jusyt feels clunky in comparison.

Ubuntu UNR on the other hand is just so easy, I just run up synaptic and install deps are taken care of. I do agree it is slower bootingthough - possibly half as long again - but thats about the only drawback.

My current install is a shade over 2 gigs with lots of extra radio and electronic apps + Gimp and popular codecs etc etc.

It seems the UNR team have done a good job of stripping the bloat without reducing the functionality. If only Acer had gone with ubuntu instead of linpus in the first place!

No worries g7nbp, thanks also to you for being the first person to get it started. I don’t normally post stuff but it was because others like you took the time to write up their work that I could sort it out, so i figured I’d better return the favour.

I understand about your decision to stick with UNR. I also choose whichever suits my needs - for example my dedicated server is OpenBSD, my home server is Ubuntu 64, my main machine is OS X, and my MSI Wind is Debian. UNR didn’t seem very far along when I last looked, I might take another look. For now the AA1 w/ Linpus just fits a particular need for me so I’m happy I could add Arduino. They are so cheap I think it was well worth it!

I would think Linpus would be ideal for an Arduino class - not many distractions and a simple interface. Although if you also intend to teach security then it could be hard work, but perhaps Backtrack would boot off an SD card in the AA1?

Would Corone have the information on how to download and compile the FTDI_SIO files. I tried with no success. Kever ;D