亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 24666394 | 回復(fù): 24666394
打印 上一主題 下一主題

[FreeBSD] 用vt讓FreeBSD終端顯示漢字 [復(fù)制鏈接]

論壇徽章:
54
2017金雞報(bào)曉
日期:2017-02-08 10:39:42操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-08 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-07 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-02-22 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-29 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-27 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-20 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-06 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2015-12-21 20:00:24操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-12-21 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-11-17 06:20:002015亞冠之廣州恒大
日期:2015-11-12 10:58:02
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-05-20 17:50 |只看該作者 |倒序?yàn)g覽
本帖最后由 lsstarboy 于 2015-05-20 17:55 編輯

在FreeBSD下顯示漢字一直是我們FBer的夢想,原來要加一大堆的東西才能顯示,自從10.1以后,多了個vt驅(qū)動,終于可以在終端下玩漢字了,雖然步驟不是很簡單,色彩不是很豐富,但至少多了一種可能。
先來看幾個條件:首先需要在內(nèi)核中編譯vt,順便把vt_vga也要帶上,否則顯示可能不那么順利;其次,需要一個字體,沒有字體只能顯示\0xfa\0xfa這之類的符號;最后,還需要配置一下,讓vt跟字體掛上鉤。
我們一步一步來做。
1、編譯內(nèi)核:
        在內(nèi)核文件中加入下面四行:
  1. options TERMINAL_NORM_ATTR=(FG_GREEN|BG_BLACK)
  2. options TERMINAL_KERN_ATTR=(FG_LIGHTCYAN|BG_BLACK)
  3. device          vt
  4. device          vt_vga
復(fù)制代碼
同時注釋掉下面三行:
  1. #device         sc
  2. #options        SC_PIXEL_MODE   # add support for the raster text mode
  3. #device         vga             # VGA video card driver
復(fù)制代碼
解釋一下:
加上的大寫字母的那兩行,表示vt的背景色和前景色,前一行是正常的輸出,采取的顏色方案是:黑色背景,綠色前景(黑客帝國的經(jīng)典配色方案哦。笠恍惺莾(nèi)核的輸出,淡青色前景,黑色背景。具體的顏色取值在本文后方查找。
去掉的三行,前兩行是sc的,老式的syscons,這個和vt是互斥的,只能選一個,vga和vt_vga也是互斥的,vga其實(shí)會自動禁掉。
重新編譯內(nèi)核,重啟,你會發(fā)現(xiàn)已經(jīng)有變色的屏幕了。
但是再還有一個重要的步驟:修改源代碼,否則雖然你可以顯示彩色,但是不能顯示漢字!修改的文件是/usr/src/sys/dev/vt/vt_font.c:
左邊是源代碼,后面是修改的值:
  1. 44    #define VTFONT_MAXMAPPINGS  8192                #define        VTFONT_MAXMAPPINGS        65536
  2. 45        #define VTFONT_MAXGLYPHSIZE 1048576                #define        VTFONT_MAXGLYPHSIZE        2097152
  3. 46        #define VTFONT_MAXDIMENSION 128                #define        VTFONT_MAXDIMENSION        128
復(fù)制代碼
原因是默認(rèn)值太小,裝不下字體文件,要改大一些才能裝下這上萬個字的字體。該值在新版中好像已經(jīng)糾正了。
(CU正文沒有flash不能上傳圖片,請見二樓)


如果沒彩色,那么請檢查一下/boot/loader.conf,在里面加上下面兩行試試,在大多數(shù)情況下,已經(jīng)是默認(rèn)的了:
  1. hw.vga.textmode=0
  2. kern.vty=vt
復(fù)制代碼
2、轉(zhuǎn)換vt支持的字體
vt使用的字體是fnt,在/usr/share/vt/fonts目錄下,這個目錄下已經(jīng)有部分字體,但僅限英文、俄文等少數(shù)語言,要使用CJK,也就是中韓日文,就必須自己做字體。但是vt又不能使用windows下的ttf字體,并且目前也沒有找到轉(zhuǎn)換程序,這使得做字體非常麻煩。
好在開源界大有熱心人士:http://www.unifoundry.com/unifont.html給我們提供了一系列的中文字體,這個unifont是基本文泉驛字體做的,雖然僅支持幾千個漢字,但是可以應(yīng)付一般的應(yīng)用了,連“镕”字都有。在這個頁面上,下載hex的版本,雖然有人推薦bdf的版本,但是經(jīng)過我測試,轉(zhuǎn)換不成功,只有hex的版本才能轉(zhuǎn)換成功。
把下載下來的gz文件解壓,然后用系統(tǒng)自帶的vtfontcvt轉(zhuǎn)換:
  1. # gunzip unifont_sample-7.0.06.hex.gz
  2. # vtfontcvt unifont_sample-7.0.06.hex aa.fnt
復(fù)制代碼
這樣便得到了一個aa.fnt,這個便是我們需要的字體文件了。

3、告訴系統(tǒng)使用中文字體:
要使用aa.fnt,就必須先把它復(fù)制到vt的字體目錄里:
  1. cp aa.fnt /usr/share/vt/fonts/
復(fù)制代碼
然后還要用rc.conf,告訴系統(tǒng)在啟動時加載中文字體,在rc.conf里加入下面一行:
  1. font8x16="aa"
復(fù)制代碼
注意引號里面的字符對應(yīng)于字體文件的名字,如果你使用了其他文件名,請修改這個地方。

重新啟動,會在啟動信息里找到下面一句:
  1. Configuring vt: font8x16 blanktime.
復(fù)制代碼
這時系統(tǒng)已經(jīng)具備顯示漢字的能力了,但是還沒有顯示。

4、顯示漢字:
先做個提示:由于unifont只識別utf-8的編碼,所以只能顯示utf-8編碼的漢字,其他編碼不可以。
我們先做個直接顯示,先在windows上用utltredit32做一個文件,rc.local,內(nèi)容為一串漢字,保存時使用“無BOM的utf-8”,然后使用winscp傳到/etc/目錄下,再重新啟動,你就會發(fā)現(xiàn)奇跡了。
(CU正文沒有flash不能上傳圖片,請見三樓)


結(jié)束語:
vt給我們一個驚喜,雖然在二十年前,DOS終端就可以顯示漢字,但這不能說明FreeBSD落后,vt的出現(xiàn),也告訴人們,F(xiàn)reeBSD也在進(jìn)步。


附:顏色值的定義:
  1. sys/i386/include/pc/display.h)
  2. /* Color attributes for foreground text */

  3. #define FG_BLACK                   0
  4. #define FG_BLUE                    1
  5. #define FG_GREEN                   2
  6. #define FG_CYAN                    3
  7. #define FG_RED                     4
  8. #define FG_MAGENTA                 5
  9. #define FG_BROWN                   6
  10. #define FG_LIGHTGREY               7
  11. #define FG_DARKGREY                8
  12. #define FG_LIGHTBLUE               9
  13. #define FG_LIGHTGREEN             10
  14. #define FG_LIGHTCYAN              11
  15. #define FG_LIGHTRED               12
  16. #define FG_LIGHTMAGENTA           13
  17. #define FG_YELLOW                 14
  18. #define FG_WHITE                  15
  19. #define FG_BLINK                0x80

  20. /* Color attributes for text background */

  21. #define BG_BLACK                0x00
  22. #define BG_BLUE                 0x10
  23. #define BG_GREEN                0x20
  24. #define BG_CYAN                 0x30
  25. #define BG_RED                  0x40
  26. #define BG_MAGENTA              0x50
  27. #define BG_BROWN                0x60
  28. #define BG_LIGHTGREY            0x70
復(fù)制代碼
另發(fā)于:http://bbs.landingbj.com/t-0-256758-1.html

論壇徽章:
54
2017金雞報(bào)曉
日期:2017-02-08 10:39:42操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-08 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-07 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-02-22 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-29 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-27 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-20 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-06 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2015-12-21 20:00:24操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-12-21 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-11-17 06:20:002015亞冠之廣州恒大
日期:2015-11-12 10:58:02
2 [報(bào)告]
發(fā)表于 2015-05-20 17:51 |只看該作者

論壇徽章:
54
2017金雞報(bào)曉
日期:2017-02-08 10:39:42操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-08 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-07 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-02-22 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-29 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-27 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-20 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-06 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2015-12-21 20:00:24操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-12-21 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-11-17 06:20:002015亞冠之廣州恒大
日期:2015-11-12 10:58:02
3 [報(bào)告]
發(fā)表于 2015-05-20 17:51 |只看該作者

論壇徽章:
9
2015年亞洲杯之卡塔爾
日期:2015-05-07 07:05:542015亞冠之鹿島鹿角
日期:2015-05-29 14:55:522015亞冠之鹿島鹿角
日期:2015-06-11 09:55:192015亞冠之山東魯能
日期:2015-06-19 23:53:042015亞冠之大阪鋼巴
日期:2015-06-23 21:03:17操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-06-23 22:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-06-27 22:20:002015亞冠之布里斯班獅吼
日期:2015-07-04 03:40:012015亞冠之平陽省
日期:2015-07-12 09:32:55
4 [報(bào)告]
發(fā)表于 2015-05-20 18:12 |只看該作者
支持樓主


論壇徽章:
4
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-14 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-16 16:34:21
5 [報(bào)告]
發(fā)表于 2015-05-20 20:17 |只看該作者
Well done!

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2015-05-21 12:46 |只看該作者
有個疑惑:顯示中文沒問題了,vt下如何輸入中文呢?

以前用過zhcon,是自帶中文輸入法的。

論壇徽章:
54
2017金雞報(bào)曉
日期:2017-02-08 10:39:42操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-08 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-07 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-02-22 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-29 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-27 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-20 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-01-06 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2015-12-21 20:00:24操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-12-21 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-11-17 06:20:002015亞冠之廣州恒大
日期:2015-11-12 10:58:02
7 [報(bào)告]
發(fā)表于 2015-05-21 14:11 |只看該作者
回復(fù) 6# chillyrains


沒有漢字輸入的需求,沒研究過。
要輸入漢字,或者進(jìn)X,或者遠(yuǎn)程,終端本身就是一個臨時性的操作臺,連zhcon也已經(jīng)10年沒動靜了。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2015-05-22 12:42 |只看該作者
回復(fù) 7# lsstarboy

感謝答復(fù)!

能顯示中文也是很大的進(jìn)步了。和直接使用終端相比,使用Windows或X遠(yuǎn)程登錄的體驗(yàn)好多了。


   

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2015-05-26 22:28 |只看該作者
頂一下

論壇徽章:
2
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00
10 [報(bào)告]
發(fā)表于 2015-10-02 00:22 |只看該作者
呃。。。大家都在浪漫的時候LZ卻在碼字。。。辛苦。。辛苦。。我就想問一個問題,使用了VT之后能在 CLI 顯示漢字了,那文字編輯器里呢?有沒有試過?如果這個問題也解決了,那使用FB的障礙可是少了一大堆啊。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP