Update 5: Just upgraded to Ubuntu 12.04 (Precise Pangolin). The old patches are not working anymore for 2.6.35-32-generic kernel (and probably following versions). Using the patch here (http://schwieters.org/toshset/toshib...-current.patch) and the method of recompilation in "Update 2" below, I've recompiled the toshiba_apci module, and it's attached here as "toshiba_acpi.ko.patched4.zip"
Update 4: The second attached toshiba_apci patch is not working anymore for 2.6.35-32-generic kernel (and probably following versions). I've found a fixed patch here: http://schwieters.org/pipermail/tosh...ry/000035.html and I've recompiled the toshiba_apci module, using the same method explained in Update2 below, and it's attached here as "toshiba_acpi.ko.patched3.zip"
If you would like to do the recompilation yourself, you can follow the steps in Update 2 below but you will need to change step 3 as follows:
First, download the attached toshiba_acpi_2.36.patch.txt then copy it to /usr/src/toshiba_acpi-current.patch
3)
Code:
sudo cp <DOWNLOADED PATCH FILE LOCATION>/toshiba_acpi_2.36.patch.txt /usr/src/toshiba_acpi-current.patch
Then continue with steps 4 onward in Update 2.
Update 3: The first attached toshiba_apci patch is not working anymore for 2.6.35-30-generic kernel (and probably following versions). I've recompiled the toshiba_apci module, using the same method explained in Update2 below, and it's attached here as "toshiba_acpi.ko.patched2.zip"
Update 2: The modem was supported in Ubuntu 9.10 Karmic Koala and Ubuntu 10.04 Lucid Lynx. Unfortunately, in Ubuntu 10.10 Maverick Meerkat the support was dropped from kernel 2.6.35-25-generic by the team working on drive toshiba_apci (More details here: https://bugs.launchpad.net/ubuntu/+s...et/+bug/644898)
From that post Tomas Orgis says:
I see that the toshiba_acpi -dev patch has been intentionally dropped, see
https://lists.ubuntu.com/archives/ke...ne/011112.html . Andy wrote:
Quote: I therefore suggest we drop this patch and see if anyone notices.
Well, I do notice. There is no way anymore to disable the backlight on this nice transflective screen -- or is there an alternative to toshset yet? Please re-integrate that
patch.
The solution to this is to apply a patch to toshiba_acpi and recompile the driver as explained below (this is taken from the link above by Mark van den Berg and Mark Crompton):
Long Solution:
1) Get ubuntu kernel source package (in this case it's linux-source-2.6.35) and kernel building tools packages
Code:
sudo apt-get install linux-source-2.6.35
sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
2)
3)
4)
Code:
sudo tar -jxf linux-source-2.6.35.tar.bz2
5)
Code:
cd linux-source-2.6.35
6)
Code:
sudo patch -p1 < ../toshiba_acpi-current.patch
7)
Code:
cd drivers/platform/x86/
8) I only wanted to build the toshiba_acpi module. So I commented out all the other modules from the Makefile. Using sudo make a backup copy of the Makefile, then edit the Makefile to only build the toshiba_acpi module. Just put # in front of the other modules.
Code:
sudo cp Makefile Makefile.backup
sudo gedit Makefile
9)
Code:
sudo make -C /usr/src/linux-headers-`uname -r` M=`pwd` modules
10)
Code:
sudo make -C /usr/src/linux-headers-`uname -r` M=`pwd`modules_install
11)
12) Driver should be into /lib/modules/*/extra/toshiba_acpi. Copy the file toshiba_acpi.ko to /lib/modules/*/extra (replace * with your current kernel version).
Code:
sudo cp /lib/modules/2.6.35-25-generic/kernel/drivers/platform/x86/toshiba_acpi.ko /lib/modules/2.6.35-25-generic/kernel/drivers/platform/x86/toshiba_acpi.ko.backup
sudo cp /lib/modules/2.6.35-25-generic/extra/toshiba_acpi.ko /lib/modules/2.6.35-25-generic/kernel/drivers/platform/x86/toshiba_acpi.ko
remove the old module:
Code:
sudo rmmod toshiba_acpi
and load the new module:
Code:
sudo modprobe toshiba_acpi
(or simply reboot)
Short solution:
If you don't want to recompile I've done the recompile using kenel 2.6.35-25-generic so you can download the toshiba_acpi.ko.patched from the attachements and do the following:
Code:
sudo cp /lib/modules/2.6.35-25-generic/kernel/drivers/platform/x86/toshiba_acpi.ko /lib/modules/2.6.35-25-generic/kernel/drivers/platform/x86/toshiba_acpi.ko.backup
sudo cp toshiba_acpi.ko.patched /lib/modules/2.6.35-25-generic/kernel/drivers/platform/x86/toshiba_acpi.ko
remove the old module:
Code:
sudo rmmod toshiba_acpi
and load the new module:
Code:
sudo modprobe toshiba_acpi
(or simply reboot)
Update: This modem is supported out-of-the-box in Ubuntu 9.10 Karmic Koala. You only need to use "sudo toshset -3g on" to switch it on and then use the Network Manager to connect/disconnect.
Toshiba Portege R500 (and probably R600) comes with a built-in 3G HSDPA modem. Unfortunately, this does not run out of the box with ubuntu 9.04. I expect that it will run flawlessly with ubuntu 9.10.
So until then, here is a step by step guide on how to make the 3G modem run for ubuntu 9.04. Users of other distributions can also use this guide with minor changes.
Hardware Specs:
The modem is a Novatel Expedite EU870D MiniCard but re-branded by Toshiba as Toshiba Wireless Broadband (3G HSDPA) SM-Bus Minicard Status Port.
Output of lsusb for the device is:
Bus 002 Device 002: ID 0930:1302 Toshiba Corp. Wireless Broadband (3G HSDPA) SM-Bus Minicard Status Port
I am not an expert and most of the credit goes to "vals / spleen.leveller" and "Anssi Saari"who gave me the main leads on how to resolve this. http://www.novatelwireless.com/index...d=305&catid=18 http://groups.google.com/group/comp....3fb94d5fa887dd
Step one: (Enable switching the modem on and off)
Toshset version 1.75 brings support for switching on the 3G modem.
Option One (Ubuntu 9.10 Karmic repository):
Download the new version of toshset from ubuntu 9.10 Karmic repositories and install it.
Code:
wget https://launchpad.net/ubuntu/+source/toshset/1.75-1/+build/1089833/+files/toshset_1.75-1_i386.deb
sudo dpkg -i toshset_1.75-1_i386.deb
Option Two (binary from toshset developers site)
Code:
wget http://www.schwieters.org/toshset/toshset.gz
gunzip toshset.gz
sudo cp toshset /usr/bin/toshset
Now you can toggle the 3g modem on and off by using this command:
Code:
sudo toshset -3g on
sudo toshset -3g off
Step two: (Make the 3G recognized as a Mobile Broadband Modem)
To get the modem to be recognized you will need to patch the "option" module and recompile the kernel (Long solution). If you do not want to recompile the kernel, you can download the modified option.ko that I have attached and replace your current file (Short solution).
Short solution:
(If you are not using ubuntu, most probably this will not work for you)
Download the patched binary of option module "option.ko.patched" from this thread's attachments. This was compiled on my laptop using ubuntu 9.04 kernel 2.6.28-13-generic.
Code:
sudo mv /lib/modules/$(uname -r)/kernel/drivers/usb/serial/option.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/option.ko.orig
unzip option.ko.patched.zip
sudo cp option.ko.patched /lib/modules/$(uname -r)/kernel/drivers/usb/serial/option.ko
Now we want to make sure the option module is going to be loaded automatically when we reboot. First check if it is not already being loaded.
Code:
lsmod | grep option
If the option module is already loaded you will see output similar to the following:
option 28292 0
usbserial 39656 1 option
If you don't see "option" in the output, then add the option module by running the following commands:
Code:
sudo /bin/bash
echo "option" >> /etc/modules
Reboot now and scroll down to "Final Touches"
Long Solution:
Most of the linux compilation guide is copied from "The Geek" founder of "How-To Geek". This is a link to the original article: http://www.howtogeek.com/howto/ubunt...ubuntu-kernel/
Re-compiling the kernel:
Getting needed packages:
The linux source code, the curses library and some other tools need to be installed to help us compile .
Code:
sudo apt-get install linux-source-2.6.17 kernel-package libncurses5-dev fakeroot
the source will be installed to the /usr/src directory in as a compressed file.
To make things easier, we’ll put ourselves in root mode by using sudo to open a new shell. There’s other ways to do this, but I prefer this way.
Now change directory into the source location so that we can install. Note that you may need to install the bunzip utility if it’s not installed.
Code:
cd /usr/src
echo $(uname -r) | bunzip2 linux-source-$(cut -c -6).tar.bz2
echo $(uname -r) | tar xvf linux-source-$(cut -c -6).tar
echo $(uname -r) | ln -s linux-source-$(cut -c -6) linux
Patching the option module:
(based on Michele Valzelli and Greg Kroah-Hartman work here: http://www.spinics.net/lists/linux-usb/msg18847.html)
Code:
cp /usr/src/linux/drivers/usb/serial/option.c /usr/src/linux/drivers/usb/serial/option.c.orig
gedit /usr/src/linux/drivers/usb/serial/option.c
Ctrl+F and find this string "#define NOVATELWIRELESS_PRODUCT_EU870D"
Insert a new line after the EXPEDITE PRODUCTS section and add the following text:
Code:
/* TOSHIBA PRODUCTS */
#define TOSHIBA_VENDOR_ID 0x0930
#define TOSHIBA_PRODUCT_HSDPA_MINICARD 0x1302
Ctrl+F and find this string "{ USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */" insert a new line after this line and paste the following:
Code:
{ USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_PRODUCT_HSDPA_MINICARD ) }, /* Toshiba 3G HSDPA == Novatel Expedite EU870D MiniCard */
save the file and close it.
Configure the New kernel:
Make a copy of your existing kernel configuration to use for the custom compile process. Note that the ` character is the one below the tilde ~
Code:
cp /boot/config-`uname -r` /usr/src/linux/.config
Now we will launch the utility that will let us customize the kernel:
Code:
cd /usr/src/linux
make menuconfig
First, go down to Load an Alternate Configuration File, and load the .config file. (just hit enter)
Hit Exit and save the configuration when prompted.
Compile the kernel:
Now we are ready for compile. First we’ll do a make clean, just to make sure everything is ready for the compile.
Next we’ll actually compile the kernel. This will take a LONG FREAKING TIME, so go find something interesting to do.
Code:
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
This process will create two .deb files in /usr/src that contain the kernel. The linux-image**** file is the actual kernel image, and the other file contains the headers. You can install both with dpkg. The filenames will probably be different on your system.
Please note that when you run these next commands, this will set the new kernel as the new default kernel. This could break things! If your machine doesn’t boot, you can hit Esc at the GRUB loading menu, and select your old kernel. You can then disable the kernel in /boot/grub/menu.lst or try and compile again.
Code:
dpkg -i linux-image-*-custom_*-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-*-custom_*-custom-10.00.Custom_i386.deb
Now reboot your machine. If everything works, you should be running your new custom kernel. You can check this by using uname. Note that the exact number will be different on your machine.
Code:
uname -r
2.6.28.9-ubuntu1-custom
Final Touches
Now if you click on the Network Manager Applet you will find that the Mobile Broadband modem is recognized. In my case it is recognized as two modems which forces nm-applet to put the full name of the modem "Toshiba Wireless Broadband (3G HSDPA) SM-Bus Minicard Status Port". I hope this will be fixed with ubuntu 9.10. This problem is ok with me as long as I can connect now in full speed.
To connect, you will need first to run this command
Code:
sudo toshset -3g on
You will see the 3G modem indicator light switched on. Now you can click on the Network Manager icon and if you have two entries for the modem choose the upper one (that's the one that works for me)
To make things easier, I have written a script that will toggle the 3g modem on and off and created a launcher icon for it in my pannel. I have also created a keyboard short cut for it.
Code:
sudo gedit /usr/bin/3g-toggle
paste the following in the new file:
Code:
#!/bin/bash
modem_status=$(gksudo "toshset -3g")
echo $modem_status | grep "on"
if [[ $? -eq 0 ]] ; then
gksudo "toshset -3g off"
else
gksudo "toshset -3g on"
fi
save the file and close it then make it executable:
Code:
sudo chmod +x /usr/bin/3g-toggle
Now right-click on any free space on your panels and choose "Add to panel..." then double-click on "Custom Application Launcher" and create it as follows:
Type: Application
Name: Toggle 3G Modem
Command: 3g-toggle
Comment: Toggle 3G Modem on and off
press on the icon to choose a meaningful icon then press Close to save your new launcher.
You can also have a keyboard shortcut to toggle the 3G on and off by going to System => Preferences => Keyboard Shortcuts. Press "Add" then write "Toggle 3G Modem" as the name and 3g-toggle as the command. A new shortcut will be created under "Custom Shortcuts" named "Toggle 3G Modem". Click on the word "Disabled" and when you see "New shortcut.." press the keyboard combination of your choice. Then press "Close".
Important Note:
The patched "option" kernel module will be lost on every kernel upgrade whether you used the long solution or the short solution above.
To fix this you either repeat "Step Two" or just copy the patched binary (option.ko) from your previous kernel to the new one.
For example when I upgraded today from kernel 2.6.28-13-generic to 2.6.28-14-generic I followed the following steps:
Code:
sudo rmmod option
sudo mv /lib/modules/$(uname -r)/kernel/drivers/usb/serial/option.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/option.ko.orig
sudo cp /lib/modules/2.6.28-13-generic/kernel/drivers/usb/serial/option.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
sudo modprobe -i option
Logout and login and you are done (or just restart nm-applet).
If you used the Long solution for patching, the location of the patched module will be in /lib/modules/2.6.*custom*/kernel/drivers/usb/serial/option.ko
so you will need to adjust the commands accordingly.
Bookmarks