Cyber memos for my personal knowledge.

2009-05-27

Compiling SiS X driver on Ubuntu 9.04

I got new verison of SiS Linux X driver which fixed some bugs and the AUO panel issue.
And again, I have to verify it for our company's product on Ubuntu 9.04 first.
(Company decision........)

Xorg X server is v1.6.0 on Ubuntu 9.04.

Well, some packages I need to install to compile the SiS X driver source code:
1. xserver-xorg-dev;
2. x11proto-*-dev; (Lazy, so I install them all......)
3. libdrm-dev;
4. libgl1-mesa-dev;
5. build-essential; (This is ur call..)

And, of course, ./configure; make, then you can find the driver sis_drv.so under ./src/.libs/.
Nothing special.

Next I have to verify it on Mandriva 2009.1 also.

2009-05-20

Inside the Linux reboot.c of kernel 2.6.25

I got a bug report from one of my customer, they said system hang up after issuing reboot command if using T3400 CPU...= =|||

I can duplicate this issue and I think it is a BIOS bug on our product, because I saw this issue before BIOS POST.

After confirm with our BIOS team members and we use 80 port debug card to see what is going on. We know that BIOS team need to modify their watchdog to monitor this kind of problem......They need to know some information to catch for the system reboot. In Windows, they can monitor it because system will write 0xfe to 0x64. I believe that Linux will do something smiliar to this but I can not figure it out in kernel 2.6.24.7 source code under arch/x86/kernel/reboot_*.c...

Well, starting from Linux kernel 2.6.25, there is only ONE reboot.c under arch/x86/kernel, and they do change some points in the code.

In arch/x86/kernel/reboot.c and line 367 we can see the code:
outb(0xfe, 0x64); /* pulse reset low */

This function is defined in arch/x86/boot/boot.h.

囧rz..
This means that system will do basic port I/O to write to port 0x64 with value 0xfe when system is going to reboot. Bingo! So our BIOS team will be very happy with it........'cause they now can do something to their cute dog........

Another interesting point is that BIOS can detect memory address 0x472 to know this is a warm or cold reboot we want. If the reboot mode is 0x1234 that is a warm reboot. If reboot mode is 0 that is cold reboot...;-)

BTW, this is my desktop wallpaper recently...;-)
And I want to say that openSUSE rocks!!
Also the president Ma of TW rocks!!

This hot girl is named 王思平 and she is a famous model of TW!!
I personally love her bott....XD

2009-04-28

Jaunty was released on 4-23-2009

Ubuntu 9.04 Jaunty was released on 4/23/2009.
Although I don't like this distro, I still have to install and evaluate it on my company's NB products...Orz

This release of Ubuntu implement the ext4 file system which was improved from previous ext3 fs type.

First, I have tasted the Ubuntu 9.04 Netbook Remix edition. This is the first formal release for Ubuntu distro which got a optimized system on netbook products. With a different kind of "desktop" interface which can be more useful with touch screen device such as MID.

Basically, Ubuntu have made the OS image for LPIA and/or netbook product, but they didn't formal announce it such as 9.04. I downloaded those non-announced image and installed it to give it a try. I have to say the truth that, those releases suck..damn..!! Very low performance and laggy response of the whole system, it's very terrible........

Now, finally 9.04 netbook remix with ext4 supported, it is just OK to use. Even I still see error messages of built-in Intel i915 / drm driver.



2009-03-25

Linux kernel 2.6.29 is released

Cool~!

On 2009-03-23 the Linux kernel 2.6.29 is out there~!
Let's find out how many cool stuffs' inside this release.

Message from Linus: click here.

For the changes in 2.6.29: click here.

BTW, I love this new logo - Tuz, it's cute.

2009-03-13

Code::Blocks IDE in openSUSE 11.1-build and install

Again, today I will try to build and install the Code::Blocks, an open source and free IDE for programming, in my own openSUSE 11.1 box...;-)

1. First, I need wxWidgets supported in my openSUSE 11.1 box. In a terminal console:

$
zypper search wxWidgets

I got some information about it as:
正在載入儲存庫資料...
正在讀取已安裝的套件...
S | 名稱 | 摘要 | 類型--+-----------------------+-------------------------------------------------------+-----------
| wxWidgets | C++ framework for cross-platform development | 套件
| wxWidgets | C++ framework for cross-platform development | srcpackage
| wxWidgets-compat | WxWidgets Compatibility Package | 套件
| wxWidgets-debuginfo | Debug information for package wxWidgets | 套件
| wxWidgets-debugsource | Debug sources for package wxWidgets | 套件
| wxWidgets-devel | Include files and libraries for wxWidgets development | 套件
| wxWidgets-docs | WxWidgets html documentations | 套件
| wxWidgets-gl | OpenGL add-on for wxWidgets | 套件
| wxWidgets-gl-compat | OpenGL add-on for wxWidgets | 套件
| wxWidgets-lang | Languages for package wxWidgets | 套件

So, I decided to install some packages:
$ sudo zypper install wxWidgets wxWidgets-compat wxWidgets-devel wxWidgets-lang

System will automatically check your box and tells you about how many new packages would be installed.
Just type your passwoed and hit 'y' to go.

2. Get Code::Blocks source code via SVN. (Or you may want to check this page first):
$ svn checkout svn://svn.berlios.de/codeblocks/trunk svn-trunk/

This will try to checkout the latest Code::Blocks source code trunk to the directory called "./svn-trunk/"
Revision of my code that checked out is 5483.

3. Just read the file inside your truck directory called "BUILD", and now I can build and install it:
$ cd svn-trunk/
$ ./bootstrap

Output message is:
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.

$ ./configure --enable-contrib

Output message is a little bit weird but seems fine to go on......
I checked the help page of ./configure but there is no "--enable-contrib" option......:

...
...
configure: WARNING: unrecognized options: --enable-contrib
*************************************************
* Code::Blocks source tree has been configured. *
*************************************************
You can now build Code::Blocks by issuing 'make'.
When the build is complete, become root and install
it by issuing 'make install'.

Finally, we can:
$ make
$ sudo make install

All good to install and play with it...;-)

2009-02-04

Install RTL8187SE PCI-e wifi card on Ubuntu 8.10

I just got a new platform with the RTL8187SE wifi card (PCI-e).
Damn it doesn't work on Ubuntu 8.10 with native kernel module rtl8180.ko........Orz
I think maybe the device ID is not supported (my device ID is 10ec:8199).

I try to grep some useful infomation about source code to install by myself.
And, now it works!
See below..;-):

1. Download the source code deb package from here. (name: rtl8187se-source_1023.0928.2008_all.deb)

2. I DO NOT want to use dpkg to install this, so I use command dpkg --extract to extract the src only.

!! CHECK THE README FILE INSIDE THE PACKAGE BEFORE YOU DO ANY THING !!

3. $ cd ./modules/rtl8187se

4. $ sudo ./makecln; sudo ./makedrv

5. $ sudo ./wlan0up (this is a test for new kernel module r8180.ko that we just made.)

If there is no problem,

6. $ sudo ./wlan0down; sudo ./install

System will automatically depmod -a and reboot. Done..;-)
BTW, the kernel for this process is 2.6.27-7-generic.

2009-01-16

Cable with RJ45 jacks how-to

RJ45 jack (tenon faces to ground..):

Normal:
Both jacks: 白橘 白綠 白藍 白棕

Cross-over:
a jack: 白綠 白橘 白藍 白棕
b jack: 白橘 白綠 白藍 白棕

2009-01-08

How to install p7zip 4.61 - UNIX/Linux version of 7-zip on openSUSE 11.1

I install it because I love it...;=)
Again, I'd like to compile it via source code by myself.

BTW, if you are NOT an advanced user I think, you should try the pre-built binary package instead of compiling it by yourself.

Well, if you now stay with M$ Windows I still recommend it. Check it out.

1. Get source code package from here. Currently, latest verson is 4.61.

2. My box is openSUSE 11.1 x86_64, T9500 CPU...;-). So I just un-tar and cd into the directory:
$ cd ./p7zip_4.61/
$ sudo zypper search -d yasm

I got output such as follows:
正在載入套件庫資料...
讀取已安裝的套件...

S | 名稱 | 摘要 | 類型
--+----------+--------------------------------------------------+-----
---| yasm | YASM is a complete rewrite of the NASM assembler | 套件

3. Install yasm:
$ sudo zypper install yasm

I got output such as follows:
正在載入套件庫資料...
讀取已安裝的套件...
正在解決套件相依性...

將會安裝下列新的套件:
yasm


全部下載大小: 240.0 K。 完成操作後,將增加 654.0 K 的使用。
要繼續嗎? [是/否]: y
正在取出 套件 yasm-0.6.2-1.75.x86_64 (1/1), 240.0 K (已解開 654.0 K)
正在取出: yasm-0.6.2-1.75.x86_64.rpm [完成]
正在安裝: yasm-0.6.2-1.75 [完成]

4. Modify ./makefile.machine. Here is my makefile.machine:
$ cp makefile.machine makefile.machine.backup
$ cp makefile.linux_x86_asm_gcc_4.X makefile.machine
$ vim ./makefile.machine

I modify ./makefile.machine as following RED words for my T9500 x86_64 system:
#
# makefile for Linux (x86, PPC, alpha ...)
#

OPTFLAGS=-O

ALLFLAGS=${OPTFLAGS} -m64 -s \
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
-DNDEBUG -D_REENTRANT -DENV_UNIX \
$(LOCAL_FLAGS)

CXX=g++ $(ALLFLAGS) -DHAVE_GCCVISIBILITYPATCH -fvisibility=hidden -fvisibility-inlines-hidden
CC=gcc $(ALLFLAGS)
CC_SHARED=-fPIC
LINK_SHARED=-fPIC -shared
ASM=yasm -f elf -m amd64


LOCAL_LIBS=-lpthread
LOCAL_LIBS_DLL=$(LOCAL_LIBS) -ldl

CPU=x64
OBJ_CRC32=$(OBJ_CRC32_x86_64)

5. Of course, make it!
$ make clean; make all2; sudo ./install.sh
Note that if you need 7zr just replace above "make all2" with "make all3".

Done...;-)