选择的选项,折腾之前还有一些刷机、ROOT、精减

2019-07-15 作者:小鱼儿玄机30码   |   浏览(192)

新安装的XUbuntu 10.10,打开终端窗口运行命令时会报错(如运行clear、 nano等),会出现:

一直以来,I/O顺序问题一直困扰着我。其实这个问题是一个比较综合的问题,它涉及的层次比较多,从VFS page cache到I/O调度算法,从i/o子系统到存储外设。而Linux I/O barrier就是其中重要的一部分。可能很多人认为,在做了文件写操作后,调用fsycn就能保证数据可靠地写入磁盘。大多数情况下,确实如此。但是,由于缓存的存在,fsycn这些同步操作,并不能保证存储设备把数据写入非易失性介质。如果此时存储设备发生掉电或者硬件错误,此时存储缓存中的数据将会丢失。这对于像日志文件系统中的日志这样的数据,其后果可能是非常严重的。因为日志文件系统中,数据的写入和日志的写入存在先后顺序。如果顺序发生错乱,则可能破坏文件系统。因此必须要有一种方式,来知道写入的数据是否真的被写入到外部存储的非易失性介质,比便文件系统根据写入情况来进行下一步的操作。如果把fsycn理解成OS级别同步的话,那么对于Barrier I/O,我的理解就是硬件级别的同步。具体Linux Barrier I/O的介绍,参考”Linux Barrier I/O”。本文主要分析Linux Barrier I/O的实现以及其他块设备驱动对它的影响。

购入传说中的Moto Atrix4G(ME860)手机——就是那个一秒变笔记本电脑的神器手机。为了让这个笔记本电脑更好用一点,自己折腾了一番,记录一下。

橄榄色:命令

Error opening terminal: unknown

Barrier I/O的目的是使其之前的I/O在其之前写入存储介质,之后的I/O需要等到其写入完成后才能得到执行。为了实现这个要求,我们最多需要执行2次flush(刷新)操作。(注意,这儿所说的flush,指的是刷新存储设备的缓存。但并不是所有存储设备都支持flush操作,所以不是所有设备都支持barrier I/O。支持根据这个要求,需要在初始化磁盘设备的请求队列时,显式的表明该设备支持barrier I/O的类型并实现prepare flush 方法,参见”Linux Barrier I/O”。)第一次flush是把barrier I/O之前的所有数据刷新,当刷新成功,也就是这些数据被存储设备告知确实写入其介质后,提交Barrier I/O所在的请求。然后执行第二次刷新,这次刷新的是Barrier I/O所携带的数据。当然,如果Barrier I/O没有携带任何数据,则第二次刷新可以省略。此外,如果存储设备支持FUA,则可以在提交Barrier I/O所携带的数据时,使用FUA命令。这样可以直接知道Barrier I/O所携带的数据是否写入成功,从而省略掉第二次刷新。

折腾之前还有一些刷机、ROOT、精减、刷GMS等工作是玩Android手机的基本工作,从略。在入手LapDock设备之前还试过了免Dock的WebTop玩法,个人觉得不是很实用,也从略。这里主要说说刷Ubuntu的事情。

红色:修改或新增内容

原因是 TERM 定义有问题,所以

通过对Barrier I/O的处理过程,我们可以看到,其中最核心的是两次刷新操作和中间的Barrier I/O。为了表示这两次刷新操作以及该Barrier I/O,在Linux Barrier I/O的实现中,引入了3个辅助request: pre_flush_rq, bar_rq, post_flush_rq. 它们包含在磁盘设备的request_queue中。每当通用块层接收到上面发下来的Barrier I/O请求,就会把该请求拷贝到bar_rq,并把这3个请求依次加入请求队列,形成flush-》barrier-》flush请求序列。这样,在处理请求时,便能实现barrier I/O所要求的功能。当然,并不是所有设备都必须使用以上序列中的所有操作,具体要使用那些操作,是有设备自身特点决定的。为了标示设备所需要采取的操作序列,Linux Barrier I/O中定义了以下标志:

目录:
小鱼儿玄机30码,1、WebTop2SD(含config,Lxterminal,Synaptic安装)
2、WebTopScripts(含chromium安装)
3、常用软件安装(thunar, eog, abiword, gnumeric, chmsee...)
4、替换BusyBox(安装xz, coreutils, findutils, grep)
5、安装JAVA(OpenJDK, FreeMind)
6、安装Pidgin
7、总结

紫色:选择的选项

先执行
export TERM=xterm
然后再用 nano 编辑一下配置文件

QUEUE_ORDERED_BY_DRAIN= 0x01,

Webtop里带的这个ubuntu是被MOTO精减过的,只有两个应用程序:Firefox和文件管理器。
其它所有的应用要么是Android版的,在屏幕上显示一个小窗口模拟手机运行Android应用,不过跟手机不同的是这里是以标签式多任务方式。
要么是Web版的,比如图中的QQ就是WebQQ,在Firefox里跑。
所以入了LapDock以后刷全功能ubuntu是必须的。
本安装方法需要手机已ROOT,但不需要解锁。

一、Scratchbox简介

sudo nano /etc/environment

QUEUE_ORDERED_BY_TAG= 0x02,

1、WebTop2SD(含config,Lxterminal,Synaptic安装)

安装方法见XDA的这个:http://forum.xda-developers.com/showthread.php?t=1119555

下载webtop2sd-2.0.1.apk,安装方法见原帖截图。

有几个注意事项:

首先是要把手机选项中显示屏关闭设置为永不关闭,然后在选项里把SD卡卸载掉,为防止电话短信的干扰,最好设置为飞行模式(我是直接就没有插SIM卡)。

然后是必须要有TF卡,因为要单独分区,所以不能装在手机内存里。

还有就是分区大小选择建议在4-5G左右,太大可能导致分区或复制文件失败。

最后,如果安装失败,请重启手机后再试。如果重试时发生分区选项不可选,请拔出TF卡到电脑上用工具清空分区,再格式化为一个普通FAT分区后,再插回手机。如反复失败,请进入Recovery进行双wipe。

另外,有些文档说跑webtop2sd之前需要安装busybox或lxterminal之类的,那是对于老版本的webtop2sd,至少这个2.0.1版本是不需要的,这两个东西它会自己装上。

成功安装webtop2sd以后把手机插到Dock上启动webtop,在屏幕下方可以看到webtop2sd config的图标,启动之。

弹出提示更新APT什么的,选择“是”。应该会有两个弹窗,都选择“是”。点完后会很久没反应,请耐心等待。

弹 窗关闭后点左边的Administrator,右边会显示需要安装Lxterminal和Synaptic。先点Lxterminal的Install按 钮,然后程序会没有反应,请耐心等待,其间可以试着点击下面的Lxterminal图标,如果显示一个黑框一闪即消失,则说明还没有装好,继续等待。直到 点击Lxterminal图标可以显示出一个命令行窗口时才说明安装完成。

然后点击Synaptic的Install按钮,同样耐心等待,其间可以在Lxterminal中输入sudo synaptic,如果说命令找不到,说明还没安装好,直到新立得可以正常启动。这里会提示软件包损毁什么的,不用理睬,退出程序。

Scratchbox is a configuration and compilation environment for building Linux software and entire Linux distributions. The basic idea of Scratchbox is to offer developers an environment that works and looks like the target environment before the target environment is available.

增加一行
export TERM=xterm

QUEUE_ORDERED_DO_PREFLUSH= 0x10,

2、WebTopScripts(含chromium安装)

要修复全功能ubuntu的软件包依赖关系,需要跑一个脚本。见XDA的这个:http://forum.xda-developers.com/showthread.php?t=1192488

使用从google code下载的最新1.7版,比如放在手机内存的download文件夹中:

cd ~
sudo tar -Pxvf /sdcard/download/webtopscripts-1.7.tar
cd WebTopScripts/
sudo ./setup.sh

然后对弹出的所有窗口全都选是,其中有些时候会非常慢,因为要下载很多东西,请耐心等待。有条件的话建议连一个国外的VPN(VPN连接在手机的设置里),可以快很多。

另外,关于这个安装有一些个人建议,但不熟悉Linux系统的人不建议尝试:

首 先,这个脚本的原理是把所有的deb包从launchpad下载到WebTopScripts/packages目录下,但是如果中断后重新运行这个脚 本,它会把这个目录下文件全部删除,以确保其中不会有不完整的下载文件,但这样的话就会大大降低效率。所以,可以用 sudo vi setup.sh命令去编辑那个脚本,把其中rm什么packages的一句注释掉(在最前面加一个#),然后用迅雷去把所有deb包预先下载了放到 packages目录下再运行这个脚本,可以快很多。所有的deb包地址保存在WebTopScripts/scripts/config.txt文件 中。

正常情况下成功跑完这个脚本就能把apt完全修复了。然后就可以升级一下apt到最新版:

sudo apt-get update
sudo apt-get upgrade

完成以后就可以开始安装chromium浏览器。其实这个已经包含在webtopscripts1.7里了。

sudo WebTopScripts/install-chromium-browser.sh

同样的,如果没有用VPN或上述的预下载方法,这个过程会很慢很慢。

二、安装Scratchbox

然后重启

QUEUE_ORDERED_DO_BAR= 0x20,

3、常用软件安装(thunar, eog, abiword, gnumeric, chmsee...)

这些都是apt里原本就有的,安装起来很方便,也可以用新立得装。不过这里还是以apt安装来介绍,因为命令行便于用文字说明,图形界面要截图太麻烦了。

sudo apt-get install awn-applets-c-extras thunar eog abiword gnumeric chmess openssh-client filezilla vinagre tsclient

对其中的软件作个简单的说明:

awn-applets-c-extras:一个系统主菜单程序,可以用AWN管理器把它添加到桌面栏上。
thunar:一个更快速的文件管理器。
eog:集成在文件管理器里的图片查看程序。
abiword:一个类似Word的文件编辑器。
gnumeric:一个类似Excel的电子表格程序。
chmsee:一个看CHM文件的程序。
openssh-client:SSH客户端。
filezilla:一个FTP客户端。
vinagre:支持VNC协议的远程桌面客户端。
tsclient:支持Windows远程桌面协议的客户端。

小鱼儿玄机30码 1

1.添加软件源

小鱼儿玄机30码 2

QUEUE_ORDERED_DO_POSTFLUSH= 0x40,

lingd@Ubuntu:~$ sudo vi /etc/apt/sources.list

QUEUE_ORDERED_DO_FUA= 0x80,

/etc/apt/sources.list最后面增加下面内容:

QUEUE_ORDERED_NONE= 0x00,

deb stable main

QUEUE_ORDERED_DRAIN= QUEUE_ORDERED_BY_DRAIN |

2.更新软件源

QUEUE_ORDERED_DO_BAR,

lingd@ubuntu:~$ sudo apt-get update

QUEUE_ORDERED_DRAIN_FLUSH= QUEUE_ORDERED_DRAIN |

3.安装软件包 

QUEUE_ORDERED_DO_PREFLUSH |

lingd@ubuntu:~$ sudo apt-get install scratchbox-core scratchbox-libs scratchbox-devkit-qemu

QUEUE_ORDERED_DO_POSTFLUSH,

lingd@ubuntu:~$ sudo apt-get install scratchbox-devkit-debian scratchbox-devkit-perl scratchbox-toolchain-cs2007q3-glibc2.5-arm7

QUEUE_ORDERED_DRAIN_FUA= QUEUE_ORDERED_DRAIN |

注:

QUEUE_ORDERED_DO_PREFLUSH |

以下是必须安装的

QUEUE_ORDERED_DO_FUA,

scratchbox-core: scratchbox环境, 常用工具及本地编译器. 

QUEUE_ORDERED_TAG= QUEUE_ORDERED_BY_TAG |

scratchbox-libs: scratchbox-core, devkits和toolchains所需的库.

QUEUE_ORDERED_DO_BAR,

scratchbox-devkit-qemu: scratchbox的ARM指令集仿真器. scratchbox中提供了qemu和sbrsh两种仿真手段. 要使用qemu仿真, 需安装scratchbox-devkit-cputransp包,不过现在scratchbox-devkit-cputransp包已被scratchbox-devkit-qemu取代了

QUEUE_ORDERED_TAG_FLUSH= QUEUE_ORDERED_TAG |

以下是可选的

QUEUE_ORDERED_DO_PREFLUSH |

scratchbox-devkit-debian: 用于Debian包开发的环境和工具.

QUEUE_ORDERED_DO_POSTFLUSH,

scratchbox-devkit-perl: 额外的perl模块.

QUEUE_ORDERED_TAG_FUA= QUEUE_ORDERED_TAG |

scratchbox-toolchain-cs2007q3-glibc2.5-arm7: 交叉编译工具包,也可以选择其他交叉编译工具包

QUEUE_ORDERED_DO_PREFLUSH |

scratchbox-devkit-doctools: 文档生成工具. 这个包很大,我没有安装

QUEUE_ORDERED_DO_FUA,

三、禁止VDSO

小鱼儿玄机30码 3

VDSOs (Virtual Dynamically-linked Shared Objects 虚拟动态共享对象) are a way to export kernel space routines to user space applications, using standard mechanisms for linking and loading (i.e. standard ELF format).

禁止Ubuntu 10.04的VDSO功能

lingd@ubuntu:~$ sudo vi /etc/sysctl.conf

编辑/etc/sysctl.conf, 最后面增加下面两行:

vm.vdso_enabled = 0

本文由小鱼儿玄机30码发布于小鱼儿玄机30码,转载请注明出处:选择的选项,折腾之前还有一些刷机、ROOT、精减

关键词: 小鱼儿玄机30码