• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            2016年9月27日

            使用 Ubuntu Server  難免會遇到需要gui的時候,
            這里介紹一種最簡單的方法

            $sudo tasksel

            這一句就可以了。
            然后會有桌面列表可以選擇,空格鍵選擇,然后回車。
            等待完成。

            posted @ 2016-09-27 17:04 snowman1101 閱讀(1560) | 評論 (0)編輯 收藏

            2016年6月14日

            今天拿到了 Microsoft Surface 3 ,
            測試一個EFI程序的時候總是出問題,
            后來查了一下,發現在使用EFI_BLOCK_IO 取得外接USB閃存大小的時候
            也就是 BlkIo->Media->LastBlock 取得的大小會比實際的多出來一個
            估計是寫固件的人理解出了問題。
            這里是定義
            /**
              Block IO read only mode data and updated only via members of BlockIO
            *
            */
            typedef struct {
              ///
              
            /// The curent media Id. If the media changes, this value is changed.
              
            ///
              UINT32  MediaId;         
               ///
              
            /// TRUE if the media is removable; otherwise, FALSE.
              
            ///    
              BOOLEAN RemovableMedia;
               ///
              
            /// TRUE if there is a media currently present in the device;
              
            /// othersise, FALSE. THis field shows the media present status
              
            /// as of the most recent ReadBlocks() or WriteBlocks() call.  
              
            ///
              BOOLEAN MediaPresent;
              ///
              
            /// TRUE if LBA 0 is the first block of a partition; otherwise
              
            /// FALSE. For media with only one partition this would be TRUE.
              
            ///
              BOOLEAN LogicalPartition;
               ///
              
            /// TRUE if the media is marked read-only otherwise, FALSE.
              
            /// This field shows the read-only status as of the most recent WriteBlocks () call.
              
            ///
              BOOLEAN ReadOnly;
               ///
              
            /// TRUE if the WriteBlock () function caches write data.
              
            ///
              BOOLEAN WriteCaching; 
               ///
              
            /// The intrinsic block size of the device. If the media changes, then
              
            /// this field is updated.  
              
            ///
              UINT32  BlockSize; 
               ///
              
            /// Supplies the alignment requirement for any buffer to read or write block(s).
              
            ///
              UINT32  IoAlign; 
               ///
              
            /// The last logical block address on the device.
              
            /// If the media changes, then this field is updated. 
              
            ///
              EFI_LBA LastBlock; 
              ///
              
            /// Only present if EFI_BLOCK_IO_PROTOCOL.Revision is greater than or equal to
              
            /// EFI_BLOCK_IO_PROTOCOL_REVISION2. Returns the first LBA is aligned to 
              
            /// a physical block boundary. 
              
            ///
              EFI_LBA LowestAlignedLba;
              ///
              
            /// Only present if EFI_BLOCK_IO_PROTOCOL.Revision is greater than or equal to
              
            /// EFI_BLOCK_IO_PROTOCOL_REVISION2. Returns the number of logical blocks 
              
            /// per physical block.
              
            ///
              UINT32 LogicalBlocksPerPhysicalBlock;
              ///
              
            /// Only present if EFI_BLOCK_IO_PROTOCOL.Revision is greater than or equal to
              
            /// EFI_BLOCK_IO_PROTOCOL_REVISION3. Returns the optimal transfer length
              
            /// granularity as a number of logical blocks.
              
            ///
              UINT32 OptimalTransferLengthGranularity;
            } EFI_BLOCK_IO_MEDIA;
            其中那個LastBlock是這樣說明的
              /// The last logical block address on the device.
            所以應該是總的block 數-1.
            不知道微軟的工程師為什么會有這樣的錯誤

            posted @ 2016-06-14 09:28 snowman1101 閱讀(530) | 評論 (0)編輯 收藏

            2013年3月28日

            前言 
             編譯好 EFI程序后,每次都用U盤到另外一臺電腦上測試實在很麻煩,一天下來U盤要插拔很多次
            無意中發現
            Oracle VM VirtualBox 的系統選項中有個 支持 EFi 。
            又在網上找了一下發現 VMware Player 也可以支持 EFI
            下面總結一下方法

            1. 首先到VMWARE官網下載免費的 VMware Player 下載
            2.正常安裝VM Player后 創建一個新的虛擬主機,并且類型選擇 64位的OS
            3.到創建的虛擬機目錄 找到 .
            vmx文件 用記事本打開 然后添加一行 
            firmware = "efi" 
            這樣你的VM虛擬機就支持UEFI啟動了。


            如果想要測試我們自己編譯的 .EFI 程序的話
            到虛擬主機的編輯選項中,新添加一個硬盤,然后類型選擇實際物理磁盤
            根據個人的需要再選擇整個磁盤或者某一個分區
            之后把編譯好的EFI文件復制到指定的磁盤或者分區中就可以了。
            要注意的是,開啟虛擬機的時候必須保證指定的磁盤/分區是關閉的。同樣復制文件的時候也要關閉虛擬機。






            posted @ 2013-03-28 11:12 snowman1101 閱讀(623) | 評論 (0)編輯 收藏

            僅列出標題  
            免费观看成人久久网免费观看| 久久国语露脸国产精品电影| 亚洲AV乱码久久精品蜜桃| 亚洲AV无码成人网站久久精品大| 久久婷婷五月综合国产尤物app| 久久丫精品国产亚洲av不卡| 18岁日韩内射颜射午夜久久成人| 久久午夜福利电影| 韩国免费A级毛片久久| 久久青青草原精品国产软件 | 青青草国产成人久久91网| 久久久久亚洲AV无码去区首| 色婷婷久久综合中文久久蜜桃av| 国产日韩欧美久久| 久久99精品久久只有精品| 欧美粉嫩小泬久久久久久久| 77777亚洲午夜久久多喷| 日韩欧美亚洲综合久久影院Ds| 亚洲国产另类久久久精品小说| 色综合久久综合网观看| 久久久久亚洲AV无码专区首JN | 久久久91精品国产一区二区三区| 久久精品免费全国观看国产| 国产精品日韩欧美久久综合| 69国产成人综合久久精品| 久久香综合精品久久伊人| 久久免费观看视频| 久久久久久久综合日本| 99久久免费国产精品| 久久精品国产精品国产精品污| 国产69精品久久久久久人妻精品| 日韩亚洲国产综合久久久| 香蕉久久一区二区不卡无毒影院 | 国产一区二区精品久久岳| 国产成人久久精品一区二区三区| 香蕉久久av一区二区三区| 无码八A片人妻少妇久久| 久久综合亚洲色HEZYO社区| 思思久久99热只有频精品66| 日韩欧美亚洲综合久久| 一本一本久久a久久综合精品蜜桃|