my blog my blog

Category: Linux
HTC ONE S解锁ROOT刷Recovery刷CM10教程

 

舍友新入手一台HTC ONE S,今天折腾了一个下午,虽然刷机这种事儿都是轻车熟路了,但是还是有一些问题,把解决过程放出来,大家参考下吧。

1.解锁

目前木有S-OFF相关的刷机资料,好像还需要机器来解,所以,方法就是官方解锁。官方解锁就直接去http://htcdev.com/bootloader/注册一个帐号,然后一步步来,在HBOOT那里最后显示S-ON 但是UNLOCKED就可以了。具体教程网上泛滥,自己搜下htc官解

2.刷recovery

先去ClockworkMod下载相应型号的recovery,网址:http://www.clockworkmod.com/rommanager

手机进入HBOOT,然后进入fastboot(按一下电源键就可以了),然后连接到电脑。驱动跟软件点此下载

手机与电脑链接正常后会在手机提示USB链接,然后进入CMD或者linux已经安装的fastboot执行命令

  1. fastboot flash recovery recovery.img 
  2. //其中的recovery.img是你下载的recovery的镜像名称,后缀是img的 

3.如果是只想root下原机系统的话自行搜索一个刷机包,然后用recovery写入。奶牛这里是直接刷的cm10,默认有root,省一步不详细写了。

4.HTC ONE S刷CM10

首先去recovery中给系统做个备份,然后开机进入系统,把备份拷贝出来。以后会用得到,如果你想用官方的ROM的时候。

之后是下载CM10的htc one s 刷机包与google app的补丁包。

CM10下载地址:http://get.cm/?device=ville

Google App补丁包下载地址:http://goo.im/gapps

注意:CyanogenMod 10.0.x 对应Android版本4.1.x,CyanogenMod 10.1.x 对应Android版本4.2.1,下载GApps的时候要注意,nightly的应该是4.2的,而stable的是4.1的,建议使用stable的rom。

将ROM跟补丁包放在手机的/sdcard目录下以供使用,备份完成后再进入recovery,双wipe后将rom刷入,再直接刷入Gapp不用wipe。这时候不要退出,否则退出也无法正常启动,因为HTC ONE S的HBOOT的关系,boot.img不能正常刷入,需要手动刷,解压缩ROM文件夹下的boot.img,用fastboot刷入,命令:

  1. fastboot flash boot boot.img 

注意:这个boot.img是从CM10的ROM里面提取的,原先我们用recovery备份的那个原机备份中也会有一个boot.img,恢复的时候也要手动刷入才可以正常恢复。

这时候开机后就可以正常启动了,但是,开机第二屏幕会有红字显示:

  1. This build is for development purpose only 
  2. Do not distribute outside of HTC without HTC's written permission. 
  3. Failure to comply may lead to legal action 

这个原因是因为我们替换可原厂的boot,应该是有验证没通过,所以提示,但是不影响使用,看了下好像是PJ75IMG.zip的原因,因为没有s-off,而且也不知道这个如何去做替换,暂且搁置,如果有解决方案希望可以留言下,谢谢。

最后可能是CM10的一个小bug,发短信不能正常载入联系人,解决方法是:先将联系人备份,系统设置-应用-联系人存储 清除数据 然后回联系人里导入列表就可以正常了,已测试。

Samsung I9250 Galaxy Nexus 刷官方Android4.2教程

 

话说入手Google三儿子已经有几天了,刷机root神马的都很简单,今儿就把刷官方最新Android4.2的教程跟朋友们分享下吧。

其实三星I9250这款机器刷机很方便,因为官方并没有锁fastboot,而且提供了最新的ROM以及一键刷机的脚本。我们需要做的就是搞定驱动,然后装上fastboot,这两点俺就不多解释了,自行查找资料。俺主要说说如何刷官方最新Android4.2的方法。

1.下载三星I9250 Galaxy Nexus的官方Android4.2的刷机包。

下载地址:https://developers.google.com/android/nexus/images?hl=zh-HK#yakju

2.下载完成后解压得到两个刷机脚本跟刷机镜像。

其中的.bat脚本是windows下的批处理,而.sh则不用多解释了,是我们linux下的脚本,脚本的命令也就是如下的几条。

  1. fastboot flash bootloader bootloader-maguro-primelc03.img 
  2. fastboot reboot-bootloader 
  3. sleep 5 
  4. fastboot flash radio radio-maguro-i9250xxlh1.img 
  5. fastboot reboot-bootloader 
  6. sleep 5 
  7. fastboot -w update image-yakju-jop40d.zip 

我们可以看到,就是用fastboot来刷的,首先刷了bootloader,然后重启进入bootloader,等待五秒后刷radio,刷完radio后重启等待五秒刷系统,系统都打包在了zip文件中。这样子执行结束就刷机完成了。

windows系统可以进入所在目录后执行bat文件,linux系统就执行sh文件。但是注意,fastboot一定要安装好,就是执行fastboot devices后可以看到设备,如果看不到设备就是驱动没装上,需要先装驱动。

呃,算了还是把windows下的驱动跟adb发上来吧。自己解压后把驱动放在系统盘的一个目录下,然后安装驱动的时候手动选择即可。fastboot放在windows文件夹或者system32下,那样子在cmd中就可以直接执行了。呃,linux的自行研究,不多解释了。驱动下载

下次讲下Galaxy Nexus的recovery跟root的方法,明后天的就更新上。

四儿子Nexus4真心是好东西到不了咱手里哇,从发售到现在,价格都炒到啥样了,算了吧,三儿子其实就足够用的了,等四儿子伤不起的亲可以联系奶牛哈,店铺里有四儿子,才2k出头的价格,性价比还不错。店铺地址点下面的条幅就看到了。

Arch Linux 2012.12.01 发布新安装介质

 

Arch Linux 现在每月好像都发一次新的安装介质镜像,呃,发吧,可能是最近一直变化比较大吧。对了Arch Linux现在已经全面启用systemd了,没有做迁移的都做迁移吧,原来的initscripts已经不继续支持更新咯。

新版本下载地址:https://www.archlinux.org/download/

systemd迁移方法可以看:https://wiki.archlinux.org/index.php/Systemd

Makefile的基本写法与范例

 

Makefile 基本写法:

格式:

  1. ------------------------------------------------- 
  2.  
  3. target: dependencies 
  4.  
  5. [tab] system command 
  6.  
  7. ------------------------------------------------- 

范例1:

  1. # I am a comment, and I want to say that the variable CC will be 
  2.  
  3. # the compiler to use. 
  4.  
  5. CC=g++ 
  6.  
  7. # Hey!, I am comment number 2. I want to say that CFLAGS will be the 
  8.  
  9. # options I'll pass to the compiler. 
  10.  
  11. CFLAGS=-c -Wall 
  12.  
  13.   
  14.  
  15. all: hello 
  16.  
  17. hello: main.o factorial.o hello.o 
  18.  
  19.        g++ main.o factorial.o hello.o -o hello 
  20.  
  21.   
  22.  
  23. main.o: main.cpp 
  24.  
  25.        g++ -c main.cpp 
  26.  
  27.   
  28.  
  29. factorial.o: factorial.cpp 
  30.  
  31.        g++ -c factorial.cpp 
  32.  
  33.   
  34.  
  35. hello.o: hello.cpp 
  36.  
  37.        g++ -c hello.cpp 
  38.  
  39.   
  40.  
  41. clean: 
  42.  
  43.        rm -rf *o hello 

范例2:
 

  1. CC=g++ 
  2.  
  3. CFLAGS=-c -Wall 
  4.  
  5. LDFLAGS
  6.  
  7. SOURCES=main.cpp hello.cpp factorial.cpp 
  8.  
  9. OBJECTS=$(SOURCES:.cpp=.o) 
  10.  
  11. EXECUTABLE=hello 
  12.  
  13.   
  14.  
  15. all: $(SOURCES) $(EXECUTABLE) 
  16.  
  17.        
  18.  
  19. $(EXECUTABLE): $(OBJECTS) 
  20.  
  21.        $(CC) $(LDFLAGS) $(OBJECTS) -o $@ 
  22.  
  23.   
  24.  
  25. .cpp.o: 
  26.  
  27.        $(CC) $(CFLAGS) $< -o $@ 
  28.  
  29. Hello.c 

 

Linux与Win8双系统实战

 

win8从开发者预览版发布到现在的正式版发布已经有日子了,今天奶牛就来说说Linux与win8双系统的启动相关的东东。

首先说思路,思路就是首先你有一个windows8了,你想再装linux,那样子就正常安装就可以了,安装到boot的地方的时候,把引导程序写在MBR上,那样子,开机就是linux的引导了,一般现在都是grub2的,grub也是同理,没有啥变化,呃,不要说你是lilo,也是同样的道理。这样子linux安装完成后你就可以进入linux了,然后从linux引导windows是很方便的,只要chainloader +1,然后把windows所在的分区make active就可以了,可以参考grub.cfg的配置文件。

第二种情况是你现在是linux,想装个win8玩儿玩儿,这个呢也有好方法,不过你要保证你的分区情况不变,至少你的boot所在的分区不能变,否则你需要先把分区等事情先处理好再来做。首先,备份你的mbr

  1. dd if=/dev/sda of=./mbr.bak bs=512 count=1 

这样子是把你现有的分区跟引导信息保存下来了,接下来你可以去安装你的win8了。安装完成后你应该默认进入win8了,找个linux的live进入linux,然后把刚才的mbr.bak还原回去。

  1. dd if=./mbr.bak of=/dev/sda  bs=446 count=1

这样子就只恢复你的引导,为啥不是bs=512呢?因为你linux下分区如果不是ntfs格式,你安装win8的时候又使用了ntfs格式的话,你的win不就挂了哦,所以这里用446保险,一般不会有问题.

这样子你就又得到了linux的引导了,继续如前所述,改下grub.cfg就可以进入win8了。

当然如果你想用win8来引导linux也可以,可以装easybcd,利用grub4dos来实现,奶牛没测试过,请自测,不过此方案肯定是行得通的。

开始调整作息时间

 

觉得,嗯,是时候更改下作息神马的了,没事儿泡泡图书馆,把一些书神马的看了,然后,早晨最好能早起吃个油条神马的。晚上拒绝熬夜鸟,昨天十点就躺下了,虽然,嗯,是睡不着,不过慢慢培养吧。最近日子比较虚度,实在不应该哇。这几天该把codecademy好好搞搞了,得把一些概念加深一下。好了,各位都加油吧。貌似说Ubuntu还有几天就又发新版本了,现在已经不是版本帝了,对Ubuntu12.10估计不会做什么太多的跟进跟介绍了。估计到时候也就更新个change note。

让自己忙起来吧,光阴别都虚度了。

BIOS跟Ubuntu无关

 

今天weibo吐槽了一个人,实在有些看不下去了,虽然这几年来在网上看到关于操作系统的吐槽不少,但是从来就没见过这么低水平的吐槽。引用下:

作者的原话:ubuntu连BIOS都找不到。。。。。。。。这怎么改 优先 光驱 日了

我转发顺便评论了下:ubuntu 连开机键都找不到 。。。。。。。。这怎么开机哇 日了

收到作者的回复:呵呵 我就不信@奶牛博客 生来就会用UBUNTU 。。。。以自己的强项去吐槽别人的弱项 是显得你的强大伟岸呢 还是什么心理阴暗 幸灾乐祸 真是林大什么鸟都有

好吧,就到这。现在作者把原微博已经删除了,无处可寻,但是,奶牛仅就此时谈谈感想。

本来只是想娱乐下大众,没想到收到如此的回复,呵呵一笑带过一千只乌鸦飞过的感觉。自始至终,我都觉得自己有很多东西要学,我知道自己有多少东西不会有多少东西不知道有多少方向要努力,我也懒得用自己宝贵的时间去跟你争论什么强项弱项,三年来积累写下的文章有小600篇了,不晓得对各位有多少帮助,但是我觉得我还算是比较热心跟有爱心的。一个知道可以在BIOS里面改启动优先级的人竟然都不知道BIOS跟操作系统无关,这个可以不怪你,但是不要拿这么愚蠢的问题来吐槽一个压根儿不适合你的操作系统可以么?你不觉得这个操作系统很无辜么?你可以说你不会用,你也可以求助询问如何使用,但是请不要这么装13似的无知的告诉别人ubuntu就像垃圾一样。科普下什么是BIOS:

  1. BIOS是英文"Basic Input Output System"的缩略语 
  2. 中文名称就是"基本输入/输出系统" 
  3. 它是一组固化到计算机内主板上一个ROM芯片上的程序 
  4. 它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 
  5. 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。 

从上面的百科介绍,我们可以知道BIOS是一个ROM芯片上的程序,固化在了主板上的硬件上,所以就算你的硬盘是完全空白的,BIOS仍旧是可以正常工作的。而对于操作系统而言,跟BIOS并没有直接关系。

那个作者所说的启动优先级是BIOS设置中常用的一个设置方面,可以通过设置boot的顺序来改变先启动什么硬件。比如你有光驱,有优盘,有硬盘,还有网络,这四种最常见的启动方式,如果你的硬盘放在第一启动项,那么就算你把安装光盘放进了光驱,重新启动,仍旧是从硬盘先启动而非你的光盘,这也就是启动顺序的一个比较好的一个例子了。裸机一般都会在硬盘装有操作系统,就像现在很多厂商为了降低笔记本的价格,从而安装linux操作系统,比如像奶牛前阵子接触的那个meego系统的机子一样。如何知道怎么进入BIOS呢,可以开机的时候看看最先出来的那行提示就知道了。

好了,科普结束。Linux操作系统本来就不是适合每个人用的,那些根本还不知道什么是linux还想着装B的筒子无权吐槽。

[mp3 auto=1]http://blog.96911.com/blog_musfile/89811004.mp3?ickey=1[/mp3]

GNOME 3.6 正式发布

 

用户界面更新

新应用更新

多语言更新

 

开发者工具更新

 希望Ubuntu 12.10的下个版本跟Arch Linux都可以尽快更新吧~

本文纯属翻译,详细看http://library.gnome.org/misc/release-notes/3.6/index.html.en

 

 

 

 

RT3370 USB无线网卡linux驱动编译安装教程

 

最近同学从淘宝上搞了个信号加强的USB网卡,让奶牛来做测试,结果在linux下发现没有驱动,很纠结,遂手动编译驱动搞定之。把方法做下mark。因为lsusb可以看到网卡的型号,所以先在arch linux下尝试用AUR找了一下,结果发现AUR提供的编译程序下载不到驱动的源码,而且还不是网络的原因,然后就小纠结滴自己找源码,看到blogspot上一篇介绍,然后就cp一份,测试成功。

1.首先下载驱动源码包。点此下载RT3370 USB无线网卡Linux驱动源码包

2.

  1. tar xf 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2 
  2. 修改Makefile第 12 行,把 CHIPSET = 5370 改成 CHIPSET = 3370 
  3. 修改os/linux/config.mk第 56 行,把 HAS_WPA_SUPPLICANT=n 改成 HAS_WPA_SUPPLICANT=y 
  4. 第 60 行,把 HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n 改成HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y 
  5. 修改 chips/rtmp_chip.c 的 469 行 到471 行, remark 掉,即前面加上 // ,如下: 
  6. //if (IS_RT3390(pAd)) 
  7. //    RT33xx_Init(pAd); 
  8. //else 
  9. make 
  10. make install 

3.reboot下搞定

此方法对RT3070 RT3370 RT5370 RT5372等网卡均有效

Arch Linux启用Systemd后syslog无法正常工作解决方法

 

Arch Linux启用systemd后,很多服务都被替换掉了,当然syslog也不例外,被Systemd Journal所替代。所以开机会提示syslog.sock错误,因为sysvinit的syslog的socket已经不能正常工作了,所以我们需要更改使其正常使用。

  1. sudo vim /etc/syslog-ng/syslog-ng.conf 
  2. 将下列代码插入source src段 
  3. source src { 
  4.     unix-dgram("/run/systemd/journal/syslog"); 
  5.     internal(); 
  6.     file("/proc/kmsg"); 
  7. }; 

然后执行

  1. sudo systemctl enable syslog-ng.service 

启动服务就可以正常了。