Showing posts with label Virtualbox. Show all posts
Showing posts with label Virtualbox. Show all posts

Sunday, October 11, 2015

Installing Debian 8.2 as a VirtualBox Virtual Guest in FreeBSD 10.2-STABLE

Synopsis: In order to run the Mendeley and Evernote desktop applications on my FreeBSD laptop -- short of endeavoring to develop a port for each of those, as onto the Centos 6 (C6) Linux emulation layer, in FreeBSD -- previously, I'd installed Microsoft Windows 7 into a VirtualBox virtual guest machine, from a Microsoft DreamSpark installer disk. In a sense, it's "Worked," so far -- as after completing all of the OS installation process, OS update process, and software installation processes onto the virtual guest machine -- "Worked," though, in such that I now have a Microsoft Windows 7 virtual guest machine available for running Microsoft Windows software via VirtualBox on my FreeBSD laptop, but considering the substantial hardware footprint of Microsoft Windows -- as in regards to Microsoft Windows' utilization of system memory and processor resources, whether or not such hardware resources are utilized via a VirtualBox virtual guest machine -- I've estimated that it may be more effective to install Mendeley and Evernote into a Linux virtual guest machine. With those applications installed into a Linux virtual guest machine, and with the Linux operating system (OS) of that virtual guest machine being tuneable as a Linux operating system, I estimate that it may be overall a more effective way to utilize the Mendeley and Evernote desktop applications ultimately on my FreeBSD laptop -- more effective, juxtaposed to the Mendeley and Evernote desktop applications being installed to the, may one say, the more indulgently designed operating system that is Microsoft Windows 7.

Thus, I've downloaded the Debian net installer CD -- using the BitTorrent P2P distribution for downloading the Debian net installer CD, then applying the ctorrent command-line BitTorrent application on my FreeBSD laptop. After some small effort for resolving an initial issue at installation time, I've now installed Debian into a VirtualBox virtual guest machine, on my FreeBSD laptop. Of course, this being a learning experience -- and although the style in which I write about this learning experience may not seem like "Normal English" to some readers' estimations -- I've considered that it may be useful to record some of my own technical observations from this learning experience, specifically of installing Debian 8.2 from the amd64 netinst CD.

Firstly, as in order to so much complete the installation, I've configured the VirtualBox virutal guest machine such that the virtual guest machine would utilize the VirtualBox ICH9 CPU emulation -- juxtaposed to the VirtualBox PIIX3 CPU emulation. When the virtual guest machine was configured, originally, to use the PIIX3 CPU emulation, the installation would "Freeze", reproducibly -- furthermore, always "Freezing" at a specific time, such as when installing the 'passwd' utility during the Debian installer process. My not being immediately predisposed to bug track that specific issue, I've sought a workaround, and have found a workaround of the issue.

Simply, in the graphical configuration panel for the VirtualBox virtual guest machine for the Debian installation -- specifically, in the virtual guest machine 'System'  configuration panel, 'Motherboard' configuration tab -- I've selected the ICH9 Chipset emulation instead of the PIIX3 Chipset emulation. Once making that single change to the configuration for the virtual guest machine, I was able to complete the Debian installation. (Ed. Note: Of course, this configuration change could also be made in applying the 'vboxmanage' shell command,  as may be installed with the VirtualBox OSE port on FreeBSD hosts. The VirtualBox manual describes the 'vboxmanage' shell command, at depth)

In order to create something of a minimalist desktop, in the Debian virtual guest machine, I'd selected the XFCE desktop at installation time. Furthermore, I'd deselected the print server installation task, at that time -- thus limiting the amount of software that the installer would install in the virtual guest machine, before "First boot".

Of course, the Debian virtual guest machine will be applied, on my FreeBSD laptop, not as if for  creating a stand-alone virtual desktop environment of the Debian installation. Rather, ,the Debian virtual guest machine will be applied as to provide some desktop application services, such that may then be presented on the FreeBSD desktop via the VirtualBox "Seamless" display integration -- such that it will then be possible to use the Evernote and Mendeley desktop applications, without those applications being installed immediately to the FreeBSD laptop's root filesystem.

At "First boot," with the newly created Debian virtual guest machine, I installed the Debian package virtualbox-guest-dkms. To install the Debian package, I used aptitude package manager application on Debian. The selection is illustrated on an XFCE desktop, in the following screenshot.






After installing the virtualbox-guest-dkms package, I've then rebooted the Debian installation within the virtual guest machine. Following the reboot, the Debian installation can now utilize the VirtualBox Seamless display mode. Effectively, this allows for a close visual integration of desktop applications running directly in the Debian virtual guest machine, in a manner of visual integration with the FreeBSD desktop -- at which desktop, I've been applying the Cinnamon desktop environment.

Of course, the installation is not as functionally seamless as much as it may seem visually seamless, at least by the time of "Second boot". At time of "Second boot," I can't help but notice that the virtual host machine's mouse pointer is not actually producing input events to the desktop in the virtual guest machine. The host machine's mouse pointer then appearing to make a manner of geometry events, in the virtual guest machine -- at least, from how it seems, with the desktop of  the virtual guest machine being displayed within a VirtualBox window on the virtual host machine. It may be that the virtual guest machine is not receiving any input from the host machine's mouse pointer, in the "Second boot"

At "Second boot," the desktop of the virtual guest machine  has become unresponsive to the mouse pointer of the virtual host machine -- perhaps it may be something to do with the APIC implementation in the virtual guest machine, as I've not seen any such issue with the Microsoft Windows virtual guest machine I've installed on the same host machine. In retrospect, the "Unresponsive" state of the host machine's mouse pointer may have actually preceded the switch into Seamless mode in the display of the virtual guest machine. Perhaps it may be "Cleared up" with a simple reconfiguration of the respective VirtualBox virtual guest machine.






After shutting down the virtual guest machine in its minimal "Second boot" configuration, I've now reconfigured the virtual guest machine -- as such, within the host operating system -- such as to apply the original PIIX3 Chipset emulation within the virtual guest machine. Subsequently, I've booted to "Third boot." In a simple commentary, it may seem that the ICH9 Chipset emulation was sufficient for application at installation time, but that it's not working out as well, for application at normal desktop runtime. With the PIIX3 Chipset emulation again selected, then at "Third boot" of the virtual guest machine, again I'm able to use the host mouse pointer within the virtual guest machine.

The screenshot, above, illustrates the VirtualBox seamless desktop integration, with Debian 8.2 running  in a VirtualBox virtual guest machine, and the VirtualBox virtualization services then running on a FreeBSD host. On the FreeBSD host, I'm applying the Cinnamon desktop environment. In the virtual guest machine -- presently -- I'm applying the LXDE desktop environment. Though I'm considering to deactivate  the desktop environment, entirely -- albeit, then to a loss of "Window switching" behaviors in the virtual guest machine -- personally, I think LXDE is a nice "Starting point" for interacting with the virtual guest machine via a desktop/menu graphical interface.

As illustrated in the previous screenshot, when the VirtualBox virtual guest machine's display window is active on the virtual host desktop environment, and the virtual guest machine display window is configured for VirtualBox Seamless display mode,  then the host machine displays the LXDE desktop environment effectively as a layer on top of the host machine's desktop.  Visually, the effect is as if the Debian LXDE installation was running immediately within the Cinnamon desktop on FreeBSD. (Ed. note: Effectively, that is a characteristic of the functional configuration, moreover, with the LXDE desktop running within VirtualBox -- the VirtualBox virutalization services then providing a manner of a "Middle services layer" in  running the Debian virtual guest machine, and VirtualBox running within a desktop on a FreeBSD host.)

There are a number of optimizations that may serve to produce an optimally running virtual desktop environment, of a Linux installation in VirtualBox -- for instance, to adjust the "clock" timer in the Linux kernel configuration to a value that may be more optimal than the default value, such as for running a Linux desktop within a VirtualBox virtual guest machine. Furthermore, it may be advisable to disable the screensaver in the virtual guest machine. To any further detail, such optimizations will be left as an exercise for another article.

By time of "Fourth boot," hopefully my own simple CorvidCube will have the Evernote and Mendeley desktop applications installed. Presently, perhaps it's an -- albeit wordy -- "Howto" towards a configuration of a sort of meta-development environment on a desktop PC.

Ed. Note: As it turns out, the Evernote desktop application is not available for Linux platforms. Mendeley is, though [Download Mendeley Desktop for Linux]. Bibliography, and so on....

Friday, November 14, 2014

A Short Overrview Towards EDA Tool Selections: Schematic Capture and FPGA Development

As the author being an aspiring student of mathematics and electrical engineering -- presently, studying formally in a series of sort of introductory courses affiliated with the latter discipline, electrical engineering -- the author has had something of an opportunity to develop a sense of familiarity, mostly informally, with regards to a small number of software tools such that might be denoted as Electronic Design Automation (EDA) platforms.

In the college that the author is formally a student to, the Multisim platform -- as developed by National Instruments -- is the schematic capture program that the courses apply, specifically for any laboratory assignments including a circuit schematic and not implemented in regards to introductory FPGA programming. For FPGA programming, namely as in the introductory digital logic course, the FPGA platform in use is Altera's Quartus II Web Edition.

The author not being a veteran electrical engineer, this short comment will not be accompanied with any manner of salesmanship about those specific EDA platforms. Multisim certainly presents a fairly straightforward GUI, with a simple interface for circuit simulation. Multisim implements VHDL and Verilog. Quartus II, then, is certainly one of the the available platforms for programming Altera FPGAs. Altera's Cyclone III FPGA is applied in one eSOC board, such that is used, albeit exclusively, in the single introductory digital logic course at the college. Perhaps the eSOC board might present a challenge for circuit analysis, at some time, as it's not accompanied with any sort of schematic or other design files, in its current edition.

Certainly -- regarding those specific EDA tools -- though those would be applied of any single college or university, but certainly, those may not represent the only EDA tools in the known universe.

Onto Schematic Capture and Circuit Analysis


As alternate to Multisim, there's Cadence's OrCAD Capture. OrCAD supports the Verilog and VHDL formats, OrCAD, moreover, provides support for projects applying the EDIF format, such as is latterly subsumed of ISO 10303 and the STEP model. There being a few editions of the complete OrCAD EDA platform, OrCAD Lite is the free edition -- certainly, in some features, extending free/open source software, such as the GNU Compiler Collection (GCC). Insofar as OrCAD licensing, there is -- in fact -- an educational licensing model available from Cadence, for licensing of the OrCAD platform.

For those of us whom might be approaching OrCAD as student or hobbyist, perhaps also for those whom might be approaching OrCAD as, each, an aspiring electrical engineer, Cadence publishes a wealth of documentation about the OrCAD platform, broadly:

Personally, the author became aware simply of the existence of the OrCAD platform, courtesy of Edward Brumgnach's book, i.e [Brumgnach2014] Cadence OrCAD Capture Version 16, a Primer: Circuit Analysis, Electronics, and Digital, Kindle edition. The introduction presented in [Brumgnach2014] is certainly nothing intimidating, providing an overview of the OrCAD Capture graphical user interface and a number of the fundamental features of OrCAD Capture -- such as for circuit component placement, circuit simulation, and quantitative circuit analysis using OrCAD -- all addressed in a context of DC analog circuitry. The introduction, as such, is conveyed as in parallel to a short survey of fundamental principles of the electrical sciences, focusing mainly on Ohm's Law, as likewise in regards to DC analog circuitry. A study of the significance of electrical impedance -- as with regards to a current of a varying polarity, as within a circuit of a resistive element and one or more of each of a dielectric capacitive element and an inductive element -- such a study might be left as an exercise for the reader.

Notably, perhaps, the schematics components of the design files for the BeagleBone Black platform are published in DSN format, a format supported by by OrCAD Capture.



Onto the Papilio FPGA Platform

In addition to OrCAD, specifically as with regards to FPGA projects, this web-log cordially recommends Xilinx FPGAs. In regards to evaluation boards for FPGA programming, if not also in regards to environments for study and for prototyping, Xilinx Spartan FPGAs, namely, are applied in the Papilio platform -- respectively, a Spartan 3E FPGA in Papilio One, and a Spartan 6 FPGA in Papilio Duo. For programming the Papilio platform, the ZAP IDE is available, as extending of some functionality provided specifically in Xilinx ISE Web Pack.  ISE WebPack is likewise available with a free license, as a feature of the Xilinx ISE Design Suite.

Linux may be a recommended operating system platform for applying ISE Web Pack's tools. This web-log recommends the Kubuntu Linux distribution. Linux can be installed simultaneous to a Microsoft Windows operating system, either with a dual-boot configuration, or in a virtualization platform installed to the Microsoft Windows OS -- at which, this web log recommends Virtualbox for a single-user desktop environment, and Xen  as for enterprise-scale virtualization scenarios in so much of software defined networking (SDN).

Xilinx publishes a wealth of documentation, likewise -- such as about Xilinx' Spartan FPGA products and the ISE Design Suite tools as licensed under the ISE WebPack platform and as available under other licenses for Xilinx ISE Design Suite -- for example, Tutorials about Xilinux ISE Design Suite, and User Guides as with regards to the same design platform. For applications of the ISE Web Pack tools on Linux platforms, some additional documentation is available of the Arch Linux Wiki. Certainly, in installing even so much as the Xilinux ISE WebPack edition of the ISE Design Suite platform, a broad range of features are then made available, within the containing operating system.

An introduction to digital logic, as well as the VHDL hardware definition language and FPGA programming, is available in PDF and in ASCIIDOC formats [web][github]. For general prototyping with the Papilio platform, this web log recommends the ZPUino soft processor for the Papilio FPGA platform. The Papilio board -- such as Papilio One or Papilio Duo -- when programmed with the ZPUino soft processor -- may be programmed in applications of a syntax similar to the Arduino sketch file format [Arduino] though namely in using the ZAP IDE.

Towards programming a Papilio FPGA board with the ZPUino soft processor  and then developing an initial sketch file in the ZAP IDE,  Gadget Factory publishes a convenient getting started tutorial, addressing both matters. The tutorial introduces the overall working process for programming Papilio with a soft processor -- there, using the Xilinux ISE tool and the Papilio schematic library, as published by Gadget Factory, to the matter of uploading a bit file to the FPGA board, effectively thereby installing ZPUino to the Papilio board -- followed, then, with an introduction towards programming the ZPUino soft processor with a sketch file in Zap IDE,

Towards MBSE modeling for FPGA Environments

Certainly, FPGA programming represents a broad subdomain of electrical engineering. Towards a matter of model-based systems engineering (MBSE) perhaps towards developing a sort of macro-level, object-focused analysis towards an FPGA system, this article directs the reader's attention towards the ENOSYS Tool set for FPGA systems synthesis. as published courtesy of Softeam. The ENOSYS tool set develops something of a unique view about FPGA systems programming, effectively extending the Object Management Group (OMG) specifications for the Unified Modeling Language (UML) extended then into an EDA domain. The ENOSYS toolchain effectively presents an interface onto bare metal hardware, at Falcon ML,

Towards a singular overview about the Unified Modeling Language (UML), as well as the Systems Modeling Language (SysML) and the MetaObject Facility (MOF) -- of which, in extending of the MOF meta-metamodel, as defined by the OMG, the specifications of UML and SysML are implemented, literally, as metamodels -- the  reader's attention is directed to a book published by Morgan Kaufmann in affiliation with the Object Management Group, a book by Tim Weilkeins, Systems Engineering with SysML/UML: Modeling, Analysis, Design

Disambiguation: This article does not address the ENOSYS error code, as defined in contemporary C toolchains, "Function not implemented".


Segue to "Fin," Towards Theory and Praxis

In the foundry text, PhilosophiƦ Naturalis Principia Mathematica, Isaac Newton develops a concept of a juxtaposition of geometric and mechanical views with regards to mechanical systems. Such a juxtaposition may be understood as being reified, effectively, in electrical engineering -- analogously, as with regards to models for circuits, and of physical circuits, in situ. Certainly, the history of circuit modeling extends at least so far back as to the original development of Ohm's Law, previous to so many developments in analog and digital electrical systems, and -- then furthermore -- to the origins of the contemporary Euclidean geometry.

Towards developing a sense of knowledge with regards to practical applications of mathematics and the electrical sciences, certainly resources abound, as in collections of formal, public libraries and online. Towards online resources, as with regards to theories developed in and of the electrical sciences, this article cordially recommends: Hyperphysics -- a resource published online, by the Department of Physics and Astronomy at Georgia State University.

With regards to studies of practical applications for the electrical sciences, this article recommends the online resources published by each of: