Installing Debian jessie on Loongson notebook(8089_B) with Ubuntu keyboard suits

I got a white yeeloong notebook last year, and it costs me 300RMB which ships with a Loongson 2F CPU, 1GB DDR2 memory bar, and a 160GB HHD.

The netbook has a pre-installed Liunx based operating system, I can't tell its distribution, and it looks quite like a Windows XP. Since then, I put it in my closet and never use it again.

Yesterday the untouched toy crossed my mind, so I took it out and spent a whole night to get Debian Jessie working on my yeeloong notebook. Here are some procedures you may need to note if you want to have your own box running.


At the beginning, I download the vmlinux and initrd.gz file from Debian mirror. I set up a TFTP server on my mac, ensure it's working from local. later I power on the notebook,  enter into the GMON screen, using ifaddr to assign a IP address manually, and it can ping to my mac, this means the networking works now. Problem comes since then, I execute load directive to load the vmlinux file, everytime after several minutes waiting, it shows connection timeout, after some time debuging, nonthing exceptions can be found since the tftp server and the connectivity between my mac and yeeloong both normal.

I give it up and find a USB stick, this time I'm going to put vmlinix and initird file into USB and let the notebook boot from USB. You have to check that the filesystem is formatted as ext2/ext3. Most importantly, the single partition must not be larger than 4GB, say, you have a 8G USB,  you need to format at least 3 partiitons, 3-3-2 is a good choice. If the partition is larger than 4GB, you can't even enter into PMON, and it just stalls here after you power on with USB attached to your notebook with "filesys_type() usb0 don't find" showing on the screen.


After entering into PMON, you should find your USB using devls directive, then type:
> bl -d ide (usb0, 0)/vmlinux
> bl -d ide (usb0, 0)/initird.gz

Don't copy directly, you need to figure out partitions location in your USB, maybe yours is (usb0, 1), and your vmlinux file is called vmlinux-3.14-2-loongson-2f.

Be patient, I waited about 10 minutes before both files loaded into memory successfully, press "g" to let it run. Haaaaam, there're fews steps to get a brand new toy.

The installation process now begins, press Yes/No, answer questions as your normal. at the end, I choose to install LXDE desktop environment. For me, I waited about 2 hours to finish the installation.

Now, reboot, and finally, it enters into LEVEL 3 without X because of some buggy tools.

Download the xserver-xorg-video-siliconmotion package from here, don't upset with the tool's version, you need some modifications to make it work on jessie.

Using dpkg to unpack the deb file, remove xorg-video-abi-12 from its control file in "Depends" section, repack the file, before dpkg -i, using apt-get to install the xserver-xorg-core file.

startx, you will get the final screen. The default network manager for LXDE is Wicd Network Manager which is fine, what if you want to use command line, you need to modify the interface file and some other steps before connected to internet. 

Wow, with Ubuntu keyborad suits, it's definitely a good combo.

How about the performance? No matter what I run, it always ends with CPU bound, and the average load with LXDE is around 1. That does not hurt, since it does not bother me too much, but It takes more than 3 minutes to boot up, probably slower than the majority of Windows users ;-)

Since the dummy box is terribly slooow, Why you buy the box? well, just for fun.

换了套新工作环境

一年折腾一次,一次折腾两天。
花了点时间上了套四屏幕的工作环境。之前的工作环境是:
* 一台 mba,基本用来拿在手上到处跑。
* 一台台式机,Arch,还是 3.4 的 kernel,看 /lost+found/ 还是 12 年 2 月分的,工作主力,印象中是自费笔记本给公司打了大半年工之后给配置的。
* 台式机左边是另一台台式机,配置跟上面的类似,主要用来看监控,看图。使用时间跟上面一样。

后来随着要盯的图越来越多,要开的屏幕越来越多,两台 Arch/Awesome 已经无法满足需求了,尽管一台 Arch 默认可以切换 9 个屏幕,但是切来切去依然是是很不方面。
于是搞了个四屏的架子&一个四屏的显卡。架子型号是 BEWISER S4;四屏的显卡是 Nvidia quadro nvs

下图是新的环境。

把四台显示器上架捣鼓捣鼓一个多小时,显卡的 setup 绕了些弯。
最初听说是不支持 Linux,心想既然看看监控也就忍了,真的上上去了之后发现 Win7 太难用了。一块屏幕下面没法继续分屏,即使人肉把两个浏览器堆在一个屏幕上,由于浏览器乱七八糟导航栏之类的存在还是会浪费非常多的空间。即使他们可以手动去除,但是,用过平铺窗口管理器的都知道,他们离心目中想要的样子还是差很远。
于是尝试用目前服役的 Arch 来安装这块多屏显卡,结果手贱在升级之前 Syu 了下,整个系统都玩挂了,不想折腾了,确定 Ubuntu 可以安装 awesome 之后,直接搞了台 12.04 的机器过来。
安装 NVIDIA-Linux-x86_64-340.46.run 这个驱动,安装之前要关闭一切的 X,具体的安装过程看这几篇文档就好了(1, 2)。 

如果最后没成功,按照他的提示基本就是要么显卡没插系统没检测到,要么就是系统有其他不兼容的驱动存在等等之类问题。
nvidia.ko 生成了之后,按照我这边的情况是没发使用的,我的 master screen(四个显卡口的第一口)系统起起来之后一直是 Ubuntu 的紫色屏幕,后来估计是 xorg.conf 的问题,一看果真是。
xorg.conf 的书写还蛮麻烦的,需要先熟悉下语法。另外务必写对 BusID,否则再怎么折腾都是起不来的。
Nvidia 自带的 nvidia-setting 不是很好用,我试了几次没成功就直接改 xorg.conf 文件了,理论上 nvidia-setting 的所有变更都会反映到 xorg.conf 里面。
折腾到这里就差不多了,Ubuntu 该装什么就装什么,改成 awesome 的,外表看上去跟 Arch 差别不大, 目前的是:
* 左边一台继承自之前老的纯 Arch,已经不大用了,准备还给 IT 了。
* 中间四台屏幕由右下角的主机带着,主力工作环境,Ubuntu 12.04+Awesome 管理器,几乎所有的工作都在上面进行。上方的两块用来看我们核心业务的 dashboard,zabbix 的监控会在另外的一个桌面上,左下角的主要是浏览器,firefox 全局 sock proxy,chromium 的不开 proxy,右下角的写代码登录线上机器。OpenVPN,anyconnect,synergys,sock proxy 全部在右下角的另外一个桌面上。
* 右边的 mba 依然是打下手的工作。之前是把 anyconnect 放在这台机器上的,后来发现 Ubuntu 可以通过开启 OpenVPN 以及 anyconnect(anyconnect 真是个恶心的玩意儿,给你强行推送路由表,给你强行修改 iptables。推就推了,还把整个 10/8 的全给推过来了,要是你的内网也是这个段的,那是彻底废了),mac 现在除了开会几乎不用了,不过用 preview 看 pdf 倒是蛮爽了,尤其是高亮操作,Linux 下目前没有一款软件能真正的实现此类功能。
* 全局通过 synergys 以及一个 thinkpad 键盘控制所有的屏幕操作。
新安装的 chromium 好像没法在浏览器里面设置 socks5,不过可以通过命令行直接启动。一套好的做工环境对效率的提升还是非常明显的。
我这次可没黑苹果,别再发生什么口水战了。

从 ubuntu 到 redhat

这里说的是我们的生产系统(server),而非个人的笔记本(desktop)。做这个决定由来已久。之前写过一篇博客,总结了自使用了 ubuntu@Rx20 机器上出现的诸多问题,再加上 ubuntu 没有专业的支持(发布的时候发现目前 ubuntu 已经有专业的技术团队支持了, ubuntu advantage),有问题只能去 launchpad 上提 issue,能不能解决还是另外一回事,如果遇到一些 kernel panic,比如之前我们线上机器遇到的 208 天宕机这类及其严重的事故,这对一个线上的系统来说绝对是一个非常大的打击。之后,我们着手调研了两大商业系统,redhat 以及 suse,由于之前没有正式的使用过,再加上我司一贯的作风,人少(我一个全职带人)事多(负责从上架到下架的所有过程包括周边的 IDC 等),因此我们更多的是通过同行之间的交流获取到的一些信息。另外,好歹当年我也是满分通过的 RHCE,对 redhat 还是有一些感情的。所以,最终我们决定使用 redhat,我们挑选了某个业务的一小部分集群做线上的测试,使用了大半年的时间,除了遇到过几次 panic,其他的都比较稳定,再加上 redhat 售后技术支持的给力工作,尤其是海外的团队专业专注,几个 panic 都得到了比较好的解决;一些日常的小问题提交到其 portal 上也能得到很快的回复解决。总体说来,这是一次比较成功的转变。
当然,我们绝对不是说 ubuntu 不好,只能说是适用场景不同。对于一个刚孵化的公司,使用 ubuntu server 绝对是一个很好的选择,就像我们初期那样,0 成本(费用,这个对刚开始创业的公司是一个非常重要的因素),社区丰富,上手快,仅这几点就有足够的吸引力了。然而,当一公司进入了快速成长的阶段,发展到了一定的规模,需要的是更加的稳定的对外服务、出现问题的及时解决以及一对一的更加有效的服务,这时候选择 redhat/suse 就是一个比较好的方式,因为通过花费一定的费用,可以得到令人满意的服务,这个服务最终的是体现在出现问题后的及时有效的解决以及各种软件包的推送更新(主要是安全方面)。
再扯一句,说到系统的定制,我认为,除非你的机器数量超过 5 位数,做系统的定制甚至是内核的定制,对于业务的提升有帮助,哪怕只有 1% 的提升,从单台机器的角度看没什么大不了,但是放大到一万台,十万台,效果显而易见,最终解决的就是成本,说白了就是白花花的银子。但是如果规模只有数百台或者只有数十台,那就完全没有必要了,有这个空去做那百分之几的提升,不如花更多的时间放在核心业务的稳定高效上。

下面谈正题,在我们正式投入使用之前,有差不多一个月的测试时间,从机器的下单,到远程卡配置 RAID 建立 BIOS 升级、系统安装服务部署监控系统等,在此期间还是遇到了一些问题。这篇博客主要涉及的是 redhat 系统本身的一些问题。相对底层的会在系统部署的这一阶段通过 cobbler 的 snippet 解决,而比较上层的则通过 puppet, saltstack 解决。

Continue reading

Ubuntu 在 DELL 12G(R420/R620/R720) 上的问题

DELL 12G(R420/R620/R720) 的服务器在安装 Ubuntu 的时候会出现诸多的问题,原先的 10.04.x LTS 版本已经不支持了,现在非官方还支持的有 12.04,不过依然有不少问题。根据这个帖子的描述,。
BIOS 会显示如下的 error log:
Critical CPU1 Status: Processor sensor for CPU1, IERR was asserted
Critical PCIE Fatal Err: Critical Event sensor, bus fatal error [Bus 1 Device 0 Function 0] was asserted

在 DELL 的官方博客上,我们也看到了其说明,DELL 12G 并不支持 Ubuntu 发型版本,但是其 12.04 LTS 及以后的版本可以通过修改一些东西来 workaround。

BIOS 中将 power management 设置为 maximum performance,禁用掉 C-State。

下面的就全是 ubuntu 这二货的 bug 了,难怪到现在 12G 的服务器也没出现在他的 certification 列表上。

给 sb_edac 以及 i7core_edac(3.2.0-28.44 修复) 打上 patch 或者加入 blacklist:

另外 acpi_pad(3.2.0-28.44 修复) 以及 mei(3.2.0-31.50 修复) 模块也要加到 blacklist 中,前者是电源节能的 driver,还在开发中,对于服务器来说也没有必要;后者在 watchdog timer 上会 。

# cat /etc/modprobe.d/blacklist-dell.conf
blacklist acpi_pad
blacklist mei
blacklist sb_edac
blacklist i7core_edac

这里有篇《Doing battle with a Dell R620 and Ubuntu》供欣赏 ;-)

除了 10.04.x 外,debian-6.0.6 以及 CentOS-6.3 等都会出现一些问题,包括安装过程中找不到网卡(BCM5720)驱动,找不到 RAID 的驱动等问题。换成 Intel 的 I350 的网卡之后,可以找到网卡驱。
总之,Ubuntu 既然想做 server 版本,就要把他给做好,最重要的就是跟主流的硬件厂商(Dell, Hp)的支持程度,要么你就直接在网站上挂个『for test only』牌子让大家知道你做 server 只是玩玩?
另外一件搞笑的事,12.04 的 kernel 已经不区分 server 跟 generic 了,官方的理由是『便于维护』。默认的 I/O 调度也变成了 cfq,这需要人肉改回 deadline;preemption model,tickless 等都会改变。好在这些影响对机器的性能应该不会太大。

这里有一篇关于 12.04 的不完全测评,可以参考下。在不大可能换硬件的情况下,或者说即使换了硬件,二者的支持如果不和谐的话,我们只能换发型版本

ref:
http://en.community.dell.com/techcenter/b/techcenter/archive/2012/08/27/ubuntu-on-dell-12g-poweredge-servers.aspx
http://en.community.dell.com/techcenter/b/techcenter/archive/2012/09/14/follow-up-ubuntu-on-dell-12g-poweredge-servers.aspx

Bug #1 @ launchpad.net

大家知道 ubuntu 的 launchpad.net 上的第一个 bug 是什么吗?

Mark Shuttleworth 大大在 2004 年的 08 月 20 日亲自提交了第一个 bug: Microsoft has a majority market share

 

经过近 10 年的发展,Ubuntu 在 desktop 市场还是取得了不少份额的,但是前方路途依然严峻。不管何种发型版本,Ubuntu 也好,Fedora 也罢,毕竟是 *nix 阵营的,内部竞争总比外部厮杀好。顺祝 microshit 早日结束它那又臭又长的垄断地位。

ubuntu 12.04 安装 sun jdk

之前总结过一篇安装 sun jdk 的博客,并不通用,下面这个比较通用。

下载 sun jdk,解压,mv 到如下目录:
# tar zxvf jdk-7u10-linux-x64.tar.gz
# mkdir /usr/lib/jvm
# mv jdk1.7.0_10 /usr/lib/jvm/

安装,修改环境变量(可选):
# update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_04/bin/javac 1
# update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_04/bin/java 1
# update-alternatives --config javac
# update-alternatives --config java
Continue reading