Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法
前言
我在实验进入linux系统启动xwindow server而不启动KDE GNOME等桌面系统时遇到的问题。只启动x server而不启动桌面系统,在xserver之上运行一个全屏的图形界面程序,这样就能实现该程序对显示器的独占,对一般用户来说他就不能在这台电脑上搞别的动作了,只能用这个程序。一些工业控制、超市收银等应用场景下都会有这样的需求,目前这些程序都运行在windows xp (embeded)之下,也有运行于dos的。由于windows xp太被大众熟悉了,结果这些软件便不能稳定的运行了。windows也无法实现应用对窗口的独占,桌面系统是在windows内核实现的,不能说不启动桌面系统,只要启动了桌面系统,桌面上的窗口都可以关掉或者干到后台去。
实现这种图形界面程序对显示器的独占,还有另外一种方式——不启动x server,而启动系统的framebuffer能力;使用一种支持在framebuffer上实现图形界面的图形库来开发这种程序。通过调研的结果来看,qt 4.6及之后就能够做到了。但是framebuffer不能够支持调用显卡的运算能力进行图形的渲染,framebuffer只是内存上划出来的一片区域,对应着显示器上的每一个逻辑像素,只能通过CPU执行指令修改framebuffer然后直接就能反应到显示器上。linux下还有另外一种技术DirectFB,其介绍说能够利用GPU进行加速主要应用于嵌入式环境,不知道能不能够编译到X86上使用?
(PS:对于xwindow 和KDE GNOME这些桌面系统关系的理解,很多人都是错误的。可以参考一下http://www.cnblogs.com/sunsonbaby/archive/2004/08/26/36683.html)
由于满足上述应用场景采用不启动x server的方法非常有难度,所以先试验了只启动x server不启动桌面系统的方法。结果编辑启动配置以便不进入桌面系统时失败了,卡在进入桌面系统哪里动不了,只好切入到命名模式。但是分辨率只有800*600,汉字还不能显示,实在是郁闷。勉强把进入桌面系统的配置恢复后,开始解决这个分辨率低,不支持中文的问题。
在linux中一切都是文件,如果linux启动时支持framebuffer的,必须划出一片内存,虚拟一个文件fb0。估计是因为要降低对资源的消耗,ubuntu默认没有开启framebuffer。
第一步,查看显卡支持的模式
使用hwinfo,如果没有先安装。
sudo apt-get install hwinfo
安装之后就可以使用下面的命令查看显卡支持的模式了。
sudo hwinfo --framebuffer
其实你安装ubuntu时如果没有按照显卡驱动会提示安装的,一般驱动都是安装好的。其他的指导还说要安装v86d,这个得看具体请看来定,如果查看模式没得结果再安装也不迟。
sudo apt-get install v86d
第二步,选择一个模式设置启动项
我的电脑查看模式之后会有下面这个模式,分辨率最高,色彩最高16位,就选择这个。
Mode 0x0317: 1024x768 (+2048), 16 bits
然后编辑文件/etc/default/grub,找到下面的项目,改成下面一样的。其实就是在后面增加了vga=0x0317。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=0x0317"
第三步,设置initramfs支持framebuffer
编辑文件/etc/initramfs-tools/modules,在其后加入行
fbcon
vesafb
vga16fb
(为毛要加这三个,估计也是大家相互抄。有空可以验证一下只加vesafb是否可以。)
编辑文件/etc/modprobe.d/blacklist-framebuffer.conf,注释掉出现上面内容的blacklist。
#blacklist fbcon
#blacklist vesafb
#blacklist vga16fb
(vga vesa con都是老显卡模式标准,现在的显卡能支持一种就不错了。)
第四步,跟新grub和initramfs
执行下面的指令。
sudo update-grub sudo update-initramfs -u
第五步,将需要在命令模式下使用的用户加入video组
这个好多方法的,很多命令都能完成这个功能。直接去改/etc/group文件也可以,但是不推荐。
sudo adduser your_name video
有了上面四步,重启系统再进入命名模式,就会发现分辨率已经提高了。我的电脑到这一步已经可以支持中文显示了。 因为我按照ubuntu之后就按照了汉语的语言包。
有的教程一开始就让安装fbterm。这个没必要,不用中文输入的话,就可以不用安装这个。需要中文输入的话,是否能不需要fbterm直接实现,我也没调研,暂时没这个需求。以后有需求的时候再写博客。
剩余的话
initramfs是个什么玩意?我也是个新手,就我的查找到资料和我的理解,它是对系统启动时预先分配出来的内存的一种管理技术。linux中一切资源都是文件,那么系统启动时预先分配的内存也是文件,当作文件管理,就要为其提供进行存储空间分配的文件系统,initramfs就是这样一种文件系统。
Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法的更多相关文章
- Ctrl+Alt+F1~F6
Ctrl+ALT+F1~F6 可以进入不同的字符终端和图形界面.体现了 linux 或者 unix 的多用户的特点. 6个不同的终端,相当于六个不同的用户. 保持更新,转载请著名出处.
- LINUX装机问题:无法使用“Ctrl+Alt+[F1~F6]”快捷键切换到终端
用VMware装LINUX虚拟机之后,你会发现在X Window的登陆界面无法使用“Ctrl+Alt+[F1~F6]”快捷键切换到终端,这是因为VMware默认的快捷键也是Ctrl+Alt,所以你只需 ...
- Ubuntu 14 常用“快捷键”,Ctrl + Alt + F1 进入终端,按 Ctrl + Alt + F7 回到界面
Ubuntu中所谓 Super键,就是 Windows建,一般在键盘的 ctrl 和 alt 2个键之间,一个微软窗口的图标. 1.持续按住 Super键,会弹出“键盘快捷键”大全: 2.修改快捷键路 ...
- [问题解决] ubuntu server12.04 按ctrl+alt+F1没用
错误: ubuntu server12.04 想从图形化界面变成命令行界面时候,按ctrl+alt+F1没用 发生场景: 虚拟机下的ubuntu server12.04 解决方案: 因为ctrl+al ...
- ubuntu上的附件-终端和用快捷键ctrl+alt+f1 有啥区别
ctrl +alt +Fn 打开的是模拟终端,简单说来,linux系统一开机会自动打开6个模拟终端,然后自动切换到其中一个(一般来说是切换到图形界面的那个也就是说窗口管理器是在这6个模拟终端中运行的) ...
- ctrl+alt+F1~6进入不了字符界面,黑屏的解决办法
ubuntu系统,我是ubuntu14.04 本来想装cuda,需要在字符界面下装,奈何按ctrl+alt+F1就黑屏了,按ctrl+alt+F7又可以正常回到图形界面,网上查了很多,有的方法也试过, ...
- 为什么在vmware中不能使用ctrl+alt+F1~6切换到字符控制台
为什么在vmware中不能使用ctrl+alt+F1~6切换到字符控制台 是因为vmware虚拟机的快捷键: ctrl+alt也用到了 因为vmware本身的hot keys也用到了ctrl+alt: ...
- Ubuntu ctrl+alt会导致窗口还原的问题
Ubuntu ctrl+alt会导致窗口还原的问题 本来以为是compizConfig的问题,后来在系统config中找到键盘>快捷键:恢复窗口,删除这个快捷键,就好了: 原来这里写的是ctrl ...
- 执行Git命令时出现各种 SSL certificate problem 的解决办法
执行Git命令时出现各种 SSL certificate problem 的解决办法 来源 https://www.cnblogs.com/chenzc/p/5842932.html 比如我在win ...
随机推荐
- 采用p6spy完整显示hibernate的SQL语句
虽然在hibernate中有show_sql选项,但是显示出来的语句大多类似 select * from xxx where value=? 但是有时候我们需要得到完整的SQL语句,怎么办呢?使用P6 ...
- LeetCode 125. Valid Palindrome
这个题目只要注意大小写问题即可解决,而且我们只关注的是字母和数值 Given a string, determine if it is a palindrome, considering only a ...
- [HDU 2126] Buy the souvenirs (动态规划)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2126 题意:给你n个物品,m元钱,问你最多能买个多少物品,并且有多少种解决方案. 一开始想到的是,先解 ...
- (转)windows下配置nginx+php环境
原文地址 http://www.cnblogs.com/huayangmeng/archive/2011/06/15/2081337.html 刚看到nginx这个词,我很好奇它的读法(engine ...
- 编码中常用的SQL语法
蓝色标注的都是比较常见的SQL ====================== 开发中常见的SQL: left join , right join 防止丢弃数据 inner join CASE WHNE ...
- Redis附加功能之Redis流水线pipeline
流水线功能的目的:通过减少客户端与服务器之间的通信次数来提高程序的执行效率. 一.通信 在一般情况下, 用户每执行一个 Redis 命令,客户端与服务器都需要进行一次通信:客户端会将命令请求发送给服务 ...
- Codeforces Round #218 (Div. 2) C. Hamburgers
C. Hamburgers time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 腾讯校招技术岗面试经历及总结(已发offer)
关于笔试:只要前期复习到位,笔试还是很好过的,但是当然 分数 越高越好,否则后面会被面试官鄙视的.题目可能难度较大,但是要把会做的 都做 对,如果时间比较紧可以适度放弃部分不会的题目. 关于面试: 温 ...
- 【LeetCode】12. Integer to Roman 整型数转罗马数
题目: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from ...
- SQL 如果存在就更新,如果不存在就添加,使用 Merge 函数(SQL2008版本及以上)
USE [NationalUnion] GO /****** Object: StoredProcedure [dbo].[proc_DataSummary] Script Date: 07/03/2 ...